Re: [computer-go] GTPv3

2007-03-08 Thread Weston Markham
On 3/7/07, Paul Pogonyshev [EMAIL PROTECTED] wrote: Don Dailey wrote: On Wed, 2007-03-07 at 22:53 +0100, Gunnar Farneback wrote: * To abort the asynchronous genmove, the controller should send the (synchronous) command abort_async_genmove. If the engine has not returned the

Re: [gtp] Re: [computer-go] GTPv3

2007-03-08 Thread Weston Markham
On 3/7/07, Paul Pogonyshev [EMAIL PROTECTED] wrote: Gunnar Farneback wrote: Example 3: Like example 2, but abort command comes too late. ... Maybe it should then read ?2 not in progress It also makes sense to forbid an async_genmove (or simple genmove for that matter) until the previous

Re: [computer-go] GTPv3

2007-03-08 Thread Markus Enzenberger
I am still frightened by your plans, how to permit asynchronous commands in GTP. Here are some remarks and questions: genmove is only one of many commands that the user might want to abort. We use GTP extension commands for starting life and death searches or other lengthy computations and

Re: [computer-go] GTPv3

2007-03-08 Thread Nick Apperson
perhaps since every command is numbered we could have a command that tells the engine to abort a command by number. The engine can ofcourse reply with a failure if it already processed the command and can not abort it. Genmove still seems to be somewhat of an issue, but atleast this way defines

Re: [computer-go] GTPv3

2007-03-08 Thread Paul Pogonyshev
Don Dailey wrote: On Thu, 2007-03-08 at 12:27 -0500, Weston Markham wrote: There is no race condition because commands _are_ read synchronously. But responses _may be_ sent asynchronously. Paul I'm not sure that I understand Paul's explanation, so I'll try out my own: Any

Re: [computer-go] GTPv3

2007-03-08 Thread Ephrim Khong
Don Dailey wrote: 1. controller sends async_genmove 2. controller (after some period of time) sends abort. 3. engine responds to aysnc_genmove 4. engine responds to the abort search A effect might be that the engine has a gamestate where it's move has taken place, while in the

Re: [computer-go] GTPv3

2007-03-08 Thread Weston Markham
On 3/8/07, Don Dailey [EMAIL PROTECTED] wrote: On Thu, 2007-03-08 at 12:27 -0500, Weston Markham wrote: I think I am confused. I may be confused as well. I see that Paul has responded as well, but just in case this doesn't clear up on it's own: So what you might get is this: 1.

Re: [computer-go] GTPv3

2007-03-07 Thread Gunnar Farneback
Paul wrote (on the computer-go list): About asynchronous move generation. I'd propose something like this. Add some form for asynchronous responses. E.g. '=[id] ...' means success, '?[id] ...' means error (this is as now) and '%[id] ...' means asynchronous response. Maybe for

Re: [gtp] Re: [computer-go] GTPv3

2007-03-07 Thread Paul Pogonyshev
Gunnar Farneback wrote: Example 3: Like example 2, but abort command comes too late. Controller: 1 async_genmove black 2 abort_async_genmove 3 play black C3 Engine: =1 !1 E5 =2 =3 Maybe it should then read ?2 not in progress It also makes sense to forbid an async_genmove (or

Re: [computer-go] GTPv3

2007-03-07 Thread Paul Pogonyshev
Don Dailey wrote: On Wed, 2007-03-07 at 22:53 +0100, Gunnar Farneback wrote: * To abort the asynchronous genmove, the controller should send the (synchronous) command abort_async_genmove. If the engine has not returned the asynchronous genmove response before responding to the abort

Re: [computer-go] GTPv3

2007-03-06 Thread Paul Pogonyshev
I have not been following this discussion closely, but let me throw few ideas in. First about a new protocol --- I'm strongly against. I remember it was a real pain to force GTP over backward GMP. Now you want to force some (probably better but more likely more complicated) protocol over GTP

Re: [computer-go] GTPv3

2007-03-05 Thread Eduardo Sabbatella
It would be nice to have a reference implementation. I can do that on Java (yes Its not C but its reference implementation and for free, I would do a lot of JUnits in exchange). What do you think ? --- £ukasz Lew [EMAIL PROTECTED] escribió: Hi, There are some issues that are not so well

Re: [computer-go] GTPv3

2007-03-05 Thread Eduardo Sabbatella
Just an small thought GTP could implement async commands. Adding commands like: CHAT ABORT etc. Its up to the engine to read them as soon as possible, or wait to read/process them after processing a get_move command. I think just adding a couple of new commands that some engines could

Re: [computer-go] GTPv3

2007-03-05 Thread Eduardo Sabbatella
Don, Perhaps I'm completelly wrong, but pondering is up to the engine, the controller, nobody outside the engine will know / have to know if the engine is pondering. I think in the threads we are confusing the fact that the engine and the gtp line controller could be in two different process

Re: [computer-go] GTPv3

2007-03-05 Thread Nick Apperson
I think you are mostly correct. But, the problem is that GTP was designed to block on the genmove command. This is a problem because genmove is usually not quick to return. Therefore, there is no way with the current scheme to be able to issue commands while an engine is thinking. It would

Re: [computer-go] GTPv3

2007-03-05 Thread Eduardo Sabbatella
Actually gen_move blocks because every engine uses the same thread for both the engine and the comm link. you can have a couple of sub commands for get_move like: get_complete_percent, get_current_best_move, chat, etc. If the engine doesn't support realtime gtp, they will be answer after the

Re: [computer-go] GTPv3

2007-03-05 Thread Heikki Levanto
On Mon, Mar 05, 2007 at 09:50:30AM -0300, Eduardo Sabbatella wrote: Actually gen_move blocks because every engine uses the same thread for both the engine and the comm link. Yes. That is not a bug, it is a feature, when using GTP for debugging, automatic tests, or something else that is based

Re: [computer-go] GTPv3

2007-03-05 Thread Don Dailey
On Mon, 2007-03-05 at 10:10 +0100, Heikki Levanto wrote: On Sat, Mar 03, 2007 at 04:10:16PM -0500, Don Dailey wrote: And you CAN compare GTP directly to UCI because both are designed for the same purpose and both are simple text based protocols and the similarities are much greater than the

Re: [computer-go] GTPv3

2007-03-05 Thread Don Dailey
I agree with you. My idea is to not have a specific aync command, but to have anycronous versions of commands. The engine is free to accept or reject them. Having an async command doesn't do anything if you haven't implemented the useful needed extensions.Of course it could change the

Re: [computer-go] GTPv3

2007-03-05 Thread Eduardo Sabbatella
We got consensus :-) Yes some messages are async, some are synqued. If an async message/reply is received in the wrong time, it could be ignored as they use to be information only values, no state change of the game. cool :-) --- Don Dailey [EMAIL PROTECTED] escribió: I agree with you. My

Re: [computer-go] GTPv3

2007-03-05 Thread Nick Apperson
just a thought... prefix all async commands with async_ so that it is clear. Also, that way there can be a version of the command that is async and one that blocks and an engine can support one or both. This could be useful for commands that query on state (or estimated score or whatever). An

Re: [computer-go] GTPv3

2007-03-05 Thread Don Dailey
On Mon, 2007-03-05 at 09:32 -0300, Eduardo Sabbatella wrote: Don, Perhaps I'm completelly wrong, but pondering is up to the engine, the controller, nobody outside the engine will know / have to know if the engine is pondering. My program Lazarus ponders on CGOS, without any help from the

Re: [computer-go] GTPv3

2007-03-05 Thread Don Dailey
Yes, it's possible to do all of this with GTP as is and the addition of a few commands that stay blocking, nothing but pure GTP extensions and no asyncronous communication. I already mentioned this as polling. Instead of genmove, you send inc_genmove, which is designed to return very quickly

Re: [computer-go] GTPv3

2007-03-05 Thread Nick Apperson
I do not think that genmove should work that way. It makes more sense for you to have a genmove command and an async_endsearch command or somethinglike that. The program is allowed to keep searching as long as it doesn't receive that command. genmove doesn't need to have an async mode really.

Re: [computer-go] GTPv3

2007-03-05 Thread Don Dailey
I don't think it should work that way either. I was just suggesting that it's possible to do everything required without any anynchronous changes to GTP, but I certainly don't recommend this method. - Don On Mon, 2007-03-05 at 10:07 -0600, Nick Apperson wrote: I do not think that genmove

Re: [computer-go] GTPv3

2007-03-05 Thread Matt Gokey
Don Dailey wrote: On Mon, 2007-03-05 at 10:10 +0100, Heikki Levanto wrote: On Sat, Mar 03, 2007 at 04:10:16PM -0500, Don Dailey wrote: And you CAN compare GTP directly to UCI because both are designed for the same purpose and both are simple text based protocols and the similarities are much

Re: [computer-go] GTPv3

2007-03-05 Thread Don Dailey
On Mon, 2007-03-05 at 20:00 -0600, Matt Gokey wrote: I'm entering this discussion a bit late, but what about the following idea? Perhaps we could start from scratch and create the protocol we want with no compromises based perhaps on an async event message model - a model everyone

Re: [computer-go] GTPv3

2007-03-03 Thread steve uurtamo
try() and expect() to suffer() or install() signal_handlers() everywhere(). s. - Original Message From: Markus Enzenberger [EMAIL PROTECTED] To: computer-go computer-go@computer-go.org Sent: Saturday, March 3, 2007 12:39:28 PM Subject: Re: [computer-go] GTPv3 On Saturday 03 March 2007

Re: [computer-go] GTPv3

2007-03-03 Thread David Doshay
On 3, Mar 2007, at 2:50 AM, Stuart A. Yeates wrote: Personally I'd love to see functionality improvements, including: * moving from file to generic URI references * interruption of thinking engines I can see the point of sending a message that *requests* the interruption of a thinking

Re: [computer-go] GTPv3

2007-03-03 Thread Don Dailey
On Sat, 2007-03-03 at 10:39 -0700, Markus Enzenberger wrote: These are different things and therefore you cannot really compare GTP to UCI or call UCI more advanced. Yes I can. I have had a lot of experience coding up engines for both protocols and I have no reservations about this, UCI is

Re: [computer-go] GTPv3

2007-03-02 Thread Łukasz Lew
On 3/2/07, Markus Enzenberger [EMAIL PROTECTED] wrote: On Thu March 1 2007 05:22, Łukasz Lew wrote: The most important thing is controller - engine architecture. There are situations that engine would like to have the control. For these requests come up once in a while, but IMO the clear

Re: [computer-go] GTPv3

2007-03-02 Thread Don Dailey
On Fri, 2007-03-02 at 17:31 +0100, Łukasz Lew wrote: I also have a strong feelings about variables. I believe there should be standard GTP command, var seems to be a good name, that would write list of variables (with types?) var var_x would print value of var_x var var_x value would set the

Re: [computer-go] GTPv3

2007-03-02 Thread Don Dailey
On Fri, 2007-03-02 at 13:45 -0500, Don Dailey wrote: The contoller would send commands such as continue_search which must return in a fraction of second, possibly with a move.This would be truly awkward but possible. Of course, a good GO program doesn't have to STOP searching just

Re: [computer-go] GTPv3

2007-03-02 Thread Don Dailey
Łukasz, Yes, I would like to see some of these problems solved. As I mentioned, UCI doesn't have any of these issues. After thinking about this, there is perhaps a backwards compatible solution: 1. Don't change GTP, just add to it. 2. Have a command called asyncronous which tells the

Re: [computer-go] GTPv3

2007-03-02 Thread Mark Boon
On 2-mrt-07, at 16:34, Don Dailey wrote: Łukasz, Yes, I would like to see some of these problems solved. As I mentioned, UCI doesn't have any of these issues. After thinking about this, there is perhaps a backwards compatible solution: 1. Don't change GTP, just add to it. 2. Have a

[computer-go] GTPv3

2007-03-01 Thread Łukasz Lew
Hi, There are some issues that are not so well defined in GTP v2. Maybe GTP v3 should be released to avoid too much legacy later? 1. The most important thing is controller - engine architecture. There are situations that engine would like to have the control. For instance When he want to send

Re: [computer-go] GTPv3

2007-03-01 Thread Don Dailey
Hi Łukasz, Maybe something could be borrowed from UCI, the universal chess interface. It is a really well designed protocol that serves the same purpose as GTP does for go, but it's for chess. It's about at the same point GTP is, most chess programs support it and interfaces are available

Re: [computer-go] GTPv3

2007-03-01 Thread Markus Enzenberger
On Thu March 1 2007 05:22, Łukasz Lew wrote: The most important thing is controller - engine architecture. There are situations that engine would like to have the control. For these requests come up once in a while, but IMO the clear separation between who is the controller and the engine is a

Re: [computer-go] GTPv3

2007-03-01 Thread Phil G
The coming version 1.0 of GoGui will support a setup command. It is a simplified version of a suggestion I made a while ago to the GTP list and uses a syntax like: gogui-setup b A1 b B2 w C3 I would like to suggest using the command setup_sequence instead to miror the play_sequence

Re: [computer-go] GTPv3

2007-03-01 Thread Markus Enzenberger
On Thursday 01 March 2007, Phil G wrote: I would like to suggest using the command setup_sequence instead to miror the play_sequence command which was introduced by GoGui (I believe). I finally followed the GTP (draft) standard and used a prefix separated by a hyphen for non-standard extension