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 implement them 'in real time' its good enough for everybody. I wouldn't add complexity adding a true async channel, out of band or whatever. I mean, commands are ordered, as before, as always, that wouldn't break current implementations. By the way, I use a lot of stderr, I love it for debuging purposes, please don't use it as a second stream of comunication with the engine. With stdin/out and a thread with a couple of mutexes is all you need. (or thread safe queues if you like) My 2 cents --- £ukasz Lew <[EMAIL PROTECTED]> escribió: > 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 separation between > > who is the controller and the engine is a big > advantage of GTP. It makes both > > the implementation of engines and controllers much > easier. > > I agree > > > > > Can you do simple, single-threaded controller > scripts with UCI? Is it used for > > as many use cases as GTP is, ranging from > regression testing to any kind of > > automated experiments with Go engines? > > > > The Go server protocols are designed for humans > and asynchronous sending of > > messages between them at any time, but does it > make sense for a computer > > engine to allow it to start chatting, whenever it > feels like it? > > I think it is sometimes important to allow the > engine to sent some > information including chatting. > > > > > I think that GTP should not be extended in a way > that makes the implementation > > of engines or controllers more complicated. > > I agree. > > So is there any solution not using stderr? > > > > > > In gogui this is solved by using stderr to send > those commands, but: > > > - stderr is not network transparent > > > > Remi Coulom convinced me that it is more > convenient for the engine to write to > > standard error and he was right. Typically the GTP > interface is only one of > > several interfaces to lower level Go engine code > and you don't want to make > > lower level code aware of this. > > I would like to have GTP flexible enough to be the > only interface needed. > > > > > One idea I had in mind to address this was to > allow the engine to send comment > > lines before the actual response. Then you could > tunnel the standard error > > output through a network connection in these > comment lines, maybe starting > > with a special keyword. > > That is interesting. > But why before the actual response? > It should be allowed to sent it any time, and it's a > matter of server > implementation when > It will parse it. > > > > > It would need only a minor modification to > existing controllers to ignore all > > text before the response. Alternatively, one could > extend the tools GtpServer > > and NetGtp in the GoGui package to internally > transmit standard error text in > > such a way, that would be transparent for the > engine and controller on > > different hosts. > > > > > 6. Position setup. I had conversation with > Marcus about setup in GoGui. > > > And we concluded that there should be a separate > command for that. > > > > 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 > > > > Originally I had an undoable setup command in mind > to incrementally follow > > setup stones in SGF trees, but it is much easier > for engine programmers to > > handle only full position setup on empty boards, > so GoGui will follow the SGF > > properties incrementally and translate setup nodes > into clear_board / > > gogui-setup sequences. > > > > - Markus > > _______________________________________________ > > computer-go mailing list > > computer-go@computer-go.org > > > http://www.computer-go.org/mailman/listinfo/computer-go/ > > > > _______________________________________________ > computer-go mailing list > computer-go@computer-go.org > http://www.computer-go.org/mailman/listinfo/computer-go/ __________________________________________________ Preguntá. Respondé. Descubrí. Todo lo que querías saber, y lo que ni imaginabas, está en Yahoo! Respuestas (Beta). ¡Probalo ya! http://www.yahoo.com.ar/respuestas _______________________________________________ computer-go mailing list computer-go@computer-go.org http://www.computer-go.org/mailman/listinfo/computer-go/