Re: [computer-go] Drunken sailor on payday

2007-11-25 Thread Ian Osgood
-BEGIN PGP SIGNED MESSAGE- Hash: SHA1 On Nov 22, 2007, at 1:17 PM, Stefan Nobis wrote: Benjamin Teuber [EMAIL PROTECTED] writes: Man, we really need a complete Common Lisp Go Framework which also has some fast low-level code to show all these C gurus its true power :) I think so,

Re: [computer-go] Drunken sailor on payday

2007-11-25 Thread Ian Osgood
On Nov 25, 2007, at 10:29 AM, Ian Osgood wrote: Folks might be interested in the Common Lisp chess program Symbolic by Steven J. Edwards (of PGN fame). From his ICC description: Symbolic is a C++/Lisp chessplaying program written by S. J. Edwards. Symbolic's C++ source is fully

Re: [computer-go] Drunken sailor on payday

2007-11-25 Thread Christoph Birk
On Nov 25, 2007, at 10:52 AM, Ian Osgood wrote: On Nov 25, 2007, at 10:29 AM, Ian Osgood wrote: Folks might be interested in the Common Lisp chess program Symbolic by Steven J. Edwards (of PGN fame). From his ICC description: Symbolic is a C++/Lisp chessplaying program written by S.

CL implementation speed (Re: [computer-go] Drunken sailor on payday)

2007-11-25 Thread William Harold Newman
On Fri, Nov 23, 2007 at 12:30:01AM +0100, Benjamin Teuber wrote: AFAIK, CMUCL is the fastest free lisp available. But I would rather stick with its offspring, SBCL, which might be a bit slower, but it is being worked on actively, it is quite portable

Re: [computer-go] Drunken sailor on payday

2007-11-22 Thread Raymond Wold
Don Dailey wrote: Raymond Wold wrote: On Wed, 2007-11-21 at 14:11 -0500, Don Dailey wrote: Experience in a language is a factor, but nobody refutes that properly coded C is fastest (next to properly code assembly) and if performance is your goal, then anything else accepts some

Re: [computer-go] Drunken sailor on payday

2007-11-22 Thread Jacques Basaldúa
Raymond Wold wrote: Do you have anything to back this up? I was under the impression that most decent assembly programmers agreed that they can't compete with the best C compilers. Absolutely NOT. Only the typical, perhaps 99.9% of the programs, made of: transfers, conditionals, integer

Re: [computer-go] Drunken sailor on payday

2007-11-22 Thread Raymond Wold
Jacques Basaldúa wrote: Of course, what is cool is very subjective debate: Some people find it cool to depend on runtimes that increase at mega/month rate, do what the API already does only much worse, gift the user with the gray rectangle experience even on a quad-core. After two seconds of

Re: [computer-go] Drunken sailor on payday

2007-11-22 Thread Benjamin Teuber
Full agreement - I'll write more later when I find the time :) ___ computer-go mailing list computer-go@computer-go.org http://www.computer-go.org/mailman/listinfo/computer-go/

Re: [computer-go] Drunken sailor on payday

2007-11-22 Thread steve uurtamo
As far as I can tell, the optimizations that a compiler can't do are higher-level optimizations that can be done in C and wouldn't require the programmer to write assembly, or am I wrong about this? just take a look at the generated assembly sometime and you'll see things that you can make

Re: [computer-go] Drunken sailor on payday

2007-11-22 Thread Don Dailey
terry mcintyre wrote: A bird's-eye view of computer-Go programming: a large part of what a Go program does will probably be some sort of analysis of a deep tree of possible moves, involving the exploration of millions of possible positions. The guts of this should be as optimal as possible.

Re: [computer-go] Drunken sailor on payday

2007-11-22 Thread Don Dailey
C is the one true language and must be indented with the one true brace style :-) - Don Stefan Nobis wrote: Benjamin Teuber [EMAIL PROTECTED] writes: Man, we really need a complete Common Lisp Go Framework which also has some fast low-level code to show all these C gurus its true power

Re: [computer-go] Drunken sailor on payday

2007-11-22 Thread Stefan Nobis
Benjamin Teuber [EMAIL PROTECTED] writes: Man, we really need a complete Common Lisp Go Framework which also has some fast low-level code to show all these C gurus its true power :) I think so, too. :) I don't want to say CL is the one and only language (for me surely it is), I only try to

Re: [computer-go] Drunken sailor on payday

2007-11-22 Thread Don Dailey
Stefan, What is the state of common lisp these days?What is fastest compiler for X86 and how does it compare to C code in performance? I was either going to experiment with Forth or lisp in the near future. I will get around to both eventually. - Don Stefan Nobis wrote: Benjamin

Re: [computer-go] Drunken sailor on payday

2007-11-22 Thread Don Dailey
I'm also curious about scheme compilers and the quality of code they generate. Does anyone have the dirt on these? - Don Stefan Nobis wrote: Benjamin Teuber [EMAIL PROTECTED] writes: Man, we really need a complete Common Lisp Go Framework which also has some fast low-level code to

Re: [computer-go] Drunken sailor on payday

2007-11-22 Thread Benjamin Teuber
AFAIK, CMUCL is the fastest free lisp available. But I would rather stick with its offspring, SBCL, which might be a bit slower, but it is being worked on actively, it is quite portable (http://sbcl.sourceforge.net/platform-table.html) and it supports native threads (CMUCL just has green threads).

Re: [computer-go] Drunken sailor on payday

2007-11-22 Thread Benjamin Teuber
Maybe this link is a bit more interesting.. http://shootout.alioth.debian.org/gp4/benchmark.php?test=alllang=sbcllang2=gcc On Nov 23, 2007 12:30 AM, Benjamin Teuber [EMAIL PROTECTED] wrote: Of course it's not easy to compare speed of different languages, but e.g.

Re: [computer-go] Drunken sailor on payday

2007-11-22 Thread Russell Wallace
On Nov 22, 2007 12:13 PM, Jacques Basaldúa [EMAIL PROTECTED] wrote: I am still waiting to meet the first person who answers affirmatively to the question: Have you ever paid for a program written in Java? *raises hand* You need wait no longer ^.^ - and that was back in the days when Swing

Re: [computer-go] Drunken sailor on payday

2007-11-21 Thread Nick Apperson
Thanks for a great read there first of all. But... and this is something I see time and again and I must admit I don't really understand. What makes C faster than C++? I feel like C++ is all about you don't pay for what you don't use. Furthermore, I feel that C++ has at least one feature that

Re: [computer-go] Drunken sailor on payday

2007-11-21 Thread Petr Baudis
On Thu, Nov 22, 2007 at 11:36:58AM +1800, Nick Apperson wrote: Thanks for a great read there first of all. But... and this is something I see time and again and I must admit I don't really understand. What makes C faster than C++? I feel like C++ is all about you don't pay for what you

Re: [computer-go] Drunken sailor on payday

2007-11-21 Thread Nick Apperson
right... well C++ does have this using virtual methods. I meant to add that part. C++ also has templates which while they theoretically don't add any performance. Practically speaking they add tons because you don't have to split your optimization time between 10 or more versions of the same

Re: [computer-go] Drunken sailor on payday

2007-11-21 Thread Heikki Levanto
On Wed, Nov 21, 2007 at 12:07:03PM -0500, Don Dailey wrote: My advice when this question comes up (which language for go programmer) is to first ask, what do you hope to achieve?If you want to build a high performance go program, anything other than C or assembler is like tying your hand

Re: [computer-go] Drunken sailor on payday

2007-11-21 Thread Álvaro Begué
On Nov 21, 2007 1:41 PM, Don Dailey [EMAIL PROTECTED] wrote: (gcc also supports -fprofile-generate and -fprofile-use, which is pretty cool too - gcc will re-optimize the binary based on profiling information gathered from a test run of the program. It can be quite a non-trivial boost.)

Re: [computer-go] Drunken sailor on payday

2007-11-21 Thread Don Dailey
Hi Nick, When I say C, I really mean C or C++. C is basically a useful subset of C++. C++ may be closer to the ideal HP language than C.To me, the ideal language will let you seamlessly step down to high performance coding in something just as efficient as C but be able to use much

Re: [computer-go] Drunken sailor on payday

2007-11-21 Thread Nick Apperson
sure thing: -- struct foo { // some stuff gets executed virtual void do_something(somestruct s); // base case executed by default }; struct foo_foo : foo { // some stuff gets executed }; struct foo_bar : foo { // some stuff gets executed

Re: [computer-go] Drunken sailor on payday

2007-11-21 Thread Don Dailey
Hi Raymond, The point I'm making is that you must focus on what's relevant.If you are trying to win the title of world championship go program, then maintainability of code is LOW on the list of what is important. In a corporate environment it moves close to the TOP of the list of what is

Re: [computer-go] Drunken sailor on payday

2007-11-21 Thread Don Dailey
(gcc also supports -fprofile-generate and -fprofile-use, which is pretty cool too - gcc will re-optimize the binary based on profiling information gathered from a test run of the program. It can be quite a non-trivial boost.) This puts even more distance between C/C++ and other languages. I

Re: [computer-go] Drunken sailor on payday

2007-11-21 Thread Don Dailey
One thing that I haven't check into is whether the GDC D compiler has these same options for profiling code and using the profile to further improve the code. If it does, then the performance gap between C and D may not increase. - Don Don Dailey wrote: (gcc also supports -fprofile-generate

Re: [computer-go] Drunken sailor on payday

2007-11-21 Thread Raymond Wold
Don Dailey wrote: For that, C currently appears to be the best choice.This in not just my opinion, there is empirical evidence to support this claim. The problem with empirical evidence is that you don't get the very much needed all else being equal. The people that code in C (and get

Re: [computer-go] Drunken sailor on payday

2007-11-21 Thread Petr Baudis
On Thu, Nov 22, 2007 at 12:04:53PM +1800, Nick Apperson wrote: right... well C++ does have this using virtual methods. I meant to add that part. I'm sorry, I still don't get this - what do virtual methods have to do with branch prediction? Can you elaborate, please? --

Re: [computer-go] Drunken sailor on payday

2007-11-21 Thread Jason House
On Nov 21, 2007 1:18 PM, Petr Baudis [EMAIL PROTECTED] wrote: On Thu, Nov 22, 2007 at 12:04:53PM +1800, Nick Apperson wrote: right... well C++ does have this using virtual methods. I meant to add that part. I'm sorry, I still don't get this - what do virtual methods have to do with

Re: [computer-go] Drunken sailor on payday

2007-11-21 Thread Don Dailey
Heikki, Yes, I like your approach of a library and using high level language. One must be careful that it doesn't get in the way. Sometimes, the low level library imposes some constraints so that you still don't quite get the best of both worlds. For example it would be great if you could

Re: [computer-go] Drunken sailor on payday

2007-11-21 Thread Raymond Wold
On Wed, 2007-11-21 at 14:11 -0500, Don Dailey wrote: Experience in a language is a factor, but nobody refutes that properly coded C is fastest (next to properly code assembly) and if performance is your goal, then anything else accepts some compromise. That compromise may work well for a

Re: [computer-go] Drunken sailor on payday

2007-11-21 Thread Petr Baudis
On Wed, Nov 21, 2007 at 09:16:48PM +0100, Raymond Wold wrote: On Wed, 2007-11-21 at 14:11 -0500, Don Dailey wrote: Experience in a language is a factor, but nobody refutes that properly coded C is fastest (next to properly code assembly) and if performance is your goal, then anything else

Re: [computer-go] Drunken sailor on payday

2007-11-21 Thread Colin Kern
On Nov 21, 2007 3:36 PM, Petr Baudis [EMAIL PROTECTED] wrote: On Wed, Nov 21, 2007 at 09:16:48PM +0100, Raymond Wold wrote: On Wed, 2007-11-21 at 14:11 -0500, Don Dailey wrote: Experience in a language is a factor, but nobody refutes that properly coded C is fastest (next to properly

Re: [computer-go] Drunken sailor on payday

2007-11-21 Thread Adrian Grajdeanu
Nick, do you know for a fact that a C++ complier will optimize for the base case of a virtual function? I was under the impression that it doesn't know (as in can't determine at compile time) whether the function was overwritten or not so it doesn't favor any of the cases. In fact I can't even

Re: [computer-go] Drunken sailor on payday

2007-11-21 Thread Stefan Nobis
Don Dailey [EMAIL PROTECTED] writes: To me, the ideal language will let you seamlessly step down to high performance coding in something just as efficient as C but be able to use much higher level language features without getting in the way of performance Hmmm... you are just describing

Re: [computer-go] Drunken sailor on payday

2007-11-21 Thread Stuart A. Yeates
On 21/11/2007, Adrian Grajdeanu [EMAIL PROTECTED] wrote: Nick, do you know for a fact that a C++ complier will optimize for the base case of a virtual function? I was under the impression that it doesn't know (as in can't determine at compile time) whether the function was overwritten or not

Re: [computer-go] Drunken sailor on payday

2007-11-21 Thread Benjamin Teuber
On Nov 21, 2007 10:22 PM, Stefan Nobis [EMAIL PROTECTED] wrote: Hmmm... you are just describing Common Lisp. :) Man, we really need a complete Common Lisp Go Framework which also has some fast low-level code to show all these C gurus its true power :) Maybe we should really think of a project

RE: [computer-go] Drunken sailor on payday

2007-11-21 Thread Ben Lambrechts
Some chess programmers have told me that this feature works much better in Visual C++ than in gcc. It's too bad I am not willing to program in Windows to verify it. I have compiled GNU Go with both GCC and Visual C++ 2008. The binary of Visual C++ was almost half the size of the GCC one, but 3

Re: [computer-go] Drunken sailor on payday

2007-11-21 Thread wing
What's to say that a computer program can't code assembly better than any human possibly could? There are a ton of tasks that computers do thousands of times better than humans. I think it makes perfect sense that code written in C can execute faster than human-written assembly code. No

Re: [computer-go] Drunken sailor on payday

2007-11-21 Thread Colin Kern
On Nov 21, 2007 5:37 PM, Ben Lambrechts [EMAIL PROTECTED] wrote: Some chess programmers have told me that this feature works much better in Visual C++ than in gcc. It's too bad I am not willing to program in Windows to verify it. I have compiled GNU Go with both GCC and Visual C++ 2008.

Re: [computer-go] Drunken sailor on payday

2007-11-21 Thread Colin Kern
On Nov 21, 2007 6:12 PM, [EMAIL PROTECTED] wrote: What's to say that a computer program can't code assembly better than any human possibly could? There are a ton of tasks that computers do thousands of times better than humans. I think it makes perfect sense that code written in C can

Re: [computer-go] Drunken sailor on payday

2007-11-21 Thread wing
No compiler will ever do *all* of the optimizations that are possible, because most optimizations are NP-complete or even much worse. For example the equivalance of boolean expressions is NP-complete. Some potential optimizations (such as replacement of data structures) may not even

Re: [computer-go] Drunken sailor on payday

2007-11-21 Thread Christoph Birk
On Nov 21, 2007, at 12:16 PM, Raymond Wold wrote: This assumes that to be cutting edge, cycles matter. If your algorithms are such that doubling the execution time available means a 0.01% increase in wins (this is *obviously* not true for a Monte Carlo-heavy program, but might be for

Re: [computer-go] Drunken sailor on payday

2007-11-21 Thread Don Dailey
Raymond Wold wrote: On Wed, 2007-11-21 at 14:11 -0500, Don Dailey wrote: Experience in a language is a factor, but nobody refutes that properly coded C is fastest (next to properly code assembly) and if performance is your goal, then anything else accepts some compromise. That

Re: [computer-go] Drunken sailor on payday

2007-11-21 Thread Don Dailey
Colin Kern wrote: On Nov 21, 2007 3:36 PM, Petr Baudis [EMAIL PROTECTED] wrote: On Wed, Nov 21, 2007 at 09:16:48PM +0100, Raymond Wold wrote: On Wed, 2007-11-21 at 14:11 -0500, Don Dailey wrote: Experience in a language is a factor, but nobody refutes that properly coded

Re: [computer-go] Drunken sailor on payday

2007-11-21 Thread Colin Kern
On Nov 21, 2007 7:24 PM, Don Dailey [EMAIL PROTECTED] wrote: Raymond Wold wrote: On Wed, 2007-11-21 at 14:11 -0500, Don Dailey wrote: Experience in a language is a factor, but nobody refutes that properly coded C is fastest (next to properly code assembly) and if performance is your

Re: [computer-go] Drunken sailor on payday

2007-11-21 Thread Don Dailey
My mind is open on this. I'm not a lisp programmer but I have considered learning it at some point and I'm sure I will. - Don Benjamin Teuber wrote: On Nov 21, 2007 10:22 PM, Stefan Nobis [EMAIL PROTECTED] wrote: Hmmm... you are just describing Common Lisp. :) Man, we really

Re: [computer-go] Drunken sailor on payday

2007-11-21 Thread Nick Apperson
Actually, putting all the code in headers helps with function inlining more than anything. The virtual function stuff is very complicated because usually code can be linked in at runtime that adds new functionality (i.e. a new derived class). Make no mistake, virtual functions are VERY

Re: [computer-go] Drunken sailor on payday

2007-11-21 Thread terry mcintyre
A bird's-eye view of computer-Go programming: a large part of what a Go program does will probably be some sort of analysis of a deep tree of possible moves, involving the exploration of millions of possible positions. The guts of this should be as optimal as possible. A slower language such as