1
0
Fork 0
mirror of https://github.com/sockspls/badfish synced 2025-04-30 00:33:09 +00:00

Tidy up comments in uci.cpp

No functional change.

Signed-off-by: Marco Costalba <mcostalba@gmail.com>
This commit is contained in:
Marco Costalba 2011-12-03 10:41:50 +01:00
parent 0f7cbaca75
commit 348f824104
3 changed files with 28 additions and 42 deletions

View file

@ -17,9 +17,6 @@
along with this program. If not, see <http://www.gnu.org/licenses/>. along with this program. If not, see <http://www.gnu.org/licenses/>.
*/ */
// To profile with callgrind uncomment following line
//#define USE_CALLGRIND
#include <cstdio> #include <cstdio>
#include <iostream> #include <iostream>
#include <string> #include <string>
@ -31,10 +28,6 @@
#include "search.h" #include "search.h"
#include "ucioption.h" #include "ucioption.h"
#ifdef USE_CALLGRIND
#include <valgrind/callgrind.h>
#endif
using namespace std; using namespace std;
extern void uci_loop(); extern void uci_loop();
@ -56,23 +49,18 @@ int main(int argc, char* argv[]) {
Search::init(); Search::init();
Threads.init(); Threads.init();
#ifdef USE_CALLGRIND
CALLGRIND_START_INSTRUMENTATION;
#endif
if (argc < 2) if (argc < 2)
{ {
// Print copyright notice
cout << engine_name() << " by " << engine_authors() << endl; cout << engine_name() << " by " << engine_authors() << endl;
if (CpuHasPOPCNT) if (CpuHasPOPCNT)
cout << "Good! CPU has hardware POPCNT." << endl; cout << "Good! CPU has hardware POPCNT." << endl;
// Enter the UCI loop waiting for input uci_loop(); // Enter the UCI loop and wait for user input
uci_loop();
} }
else if (string(argv[1]) == "bench" && argc < 8) else if (string(argv[1]) == "bench" && argc < 8)
benchmark(argc, argv); benchmark(argc, argv);
else else
cout << "Usage: stockfish bench [hash size = 128] [threads = 1] " cout << "Usage: stockfish bench [hash size = 128] [threads = 1] "
<< "[limit = 12] [fen positions file = default] " << "[limit = 12] [fen positions file = default] "

View file

@ -680,7 +680,7 @@ namespace {
{ {
// If we are allowed to ponder do not stop the search now but // If we are allowed to ponder do not stop the search now but
// keep pondering until GUI sends "ponderhit" or "stop". // keep pondering until GUI sends "ponderhit" or "stop".
if (Limits.ponder) // FIXME racing if (Limits.ponder)
Signals.stopOnPonderhit = true; Signals.stopOnPonderhit = true;
else else
Signals.stop = true; Signals.stop = true;

View file

@ -17,7 +17,6 @@
along with this program. If not, see <http://www.gnu.org/licenses/>. along with this program. If not, see <http://www.gnu.org/licenses/>.
*/ */
#include <cassert>
#include <iostream> #include <iostream>
#include <sstream> #include <sstream>
#include <string> #include <string>
@ -35,8 +34,8 @@ using namespace std;
namespace { namespace {
// FEN string for the initial position // FEN string of the initial position, normal chess
const char* StarFEN = "rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 0 1"; const char* StartFEN = "rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 0 1";
// Keep track of position keys along the setup moves (from start position to the // Keep track of position keys along the setup moves (from start position to the
// position just before to start searching). This is needed by draw detection // position just before to start searching). This is needed by draw detection
@ -51,35 +50,36 @@ namespace {
/// Wait for a command from the user, parse this text string as an UCI command, /// Wait for a command from the user, parse this text string as an UCI command,
/// and calls the appropriate functions. Also intercepts EOF from stdin to /// and call the appropriate functions. Also intercepts EOF from stdin to ensure
/// ensure that we exit gracefully if the GUI dies unexpectedly. In addition to /// that we exit gracefully if the GUI dies unexpectedly. In addition to the UCI
/// the UCI commands, the function also supports a few debug commands. /// commands, the function also supports a few debug commands.
void uci_loop() { void uci_loop() {
Position pos(StarFEN, false, 0); // The root position Position pos(StartFEN, false, 0); // The root position
string cmd, token; string cmd, token;
bool quit = false;
while (!quit && getline(cin, cmd)) while (token != "quit")
{ {
if (!getline(cin, cmd)) // Block here waiting for input
cmd = "quit";
istringstream is(cmd); istringstream is(cmd);
is >> skipws >> token; is >> skipws >> token;
if (cmd == "quit" || cmd == "stop") if (token == "quit" || token == "stop")
{ {
quit = (token == "quit");
Search::Signals.stop = true; Search::Signals.stop = true;
Threads[0].wake_up(); // In case is waiting for stop or ponderhit Threads[0].wake_up(); // In case is waiting for stop or ponderhit
} }
else if (cmd == "ponderhit") else if (token == "ponderhit")
{ {
// The opponent has played the expected move. GUI sends "ponderhit" if // The opponent has played the expected move. GUI sends "ponderhit" if
// we were told to ponder on the same move the opponent has played. We // we were told to ponder on the same move the opponent has played. We
// should continue searching but switching from pondering to normal search. // should continue searching but switching from pondering to normal search.
Search::Limits.ponder = false; // FIXME racing Search::Limits.ponder = false;
if (Search::Signals.stopOnPonderhit) if (Search::Signals.stopOnPonderhit)
Search::Signals.stop = true; Search::Signals.stop = true;
@ -91,7 +91,7 @@ void uci_loop() {
go(pos, is); go(pos, is);
else if (token == "ucinewgame") else if (token == "ucinewgame")
pos.from_fen(StarFEN, false); pos.from_fen(StartFEN, false);
else if (token == "isready") else if (token == "isready")
cout << "readyok" << endl; cout << "readyok" << endl;
@ -149,7 +149,7 @@ namespace {
if (token == "startpos") if (token == "startpos")
{ {
fen = StarFEN; fen = StartFEN;
is >> token; // Consume "moves" token if any is >> token; // Consume "moves" token if any
} }
else if (token == "fen") else if (token == "fen")
@ -172,9 +172,8 @@ namespace {
} }
// set_option() is called when engine receives the "setoption" UCI // set_option() is called when engine receives the "setoption" UCI command. The
// command. The function updates the corresponding UCI option ("name") // function updates the UCI option ("name") to the given value ("value").
// to the given value ("value").
void set_option(istringstream& is) { void set_option(istringstream& is) {
@ -197,10 +196,9 @@ namespace {
} }
// go() is called when engine receives the "go" UCI command. The // go() is called when engine receives the "go" UCI command. The function sets
// function sets the thinking time and other parameters from the input // the thinking time and other parameters from the input string, and then starts
// string, and then calls think(). Returns false if a quit command // the main searching thread.
// is received while thinking, true otherwise.
void go(Position& pos, istringstream& is) { void go(Position& pos, istringstream& is) {
@ -235,6 +233,7 @@ namespace {
while (is >> token) while (is >> token)
searchMoves.push_back(move_from_uci(pos, token)); searchMoves.push_back(move_from_uci(pos, token));
} }
searchMoves.push_back(MOVE_NONE); searchMoves.push_back(MOVE_NONE);
limits.time = time[pos.side_to_move()]; limits.time = time[pos.side_to_move()];
limits.increment = inc[pos.side_to_move()]; limits.increment = inc[pos.side_to_move()];
@ -243,21 +242,20 @@ namespace {
} }
// perft() is called when engine receives the "perft" command. // perft() is called when engine receives the "perft" command. The function
// The function calls perft() passing the required search depth // calls perft() with the required search depth then prints counted leaf nodes
// then prints counted leaf nodes and elapsed time. // and elapsed time.
void perft(Position& pos, istringstream& is) { void perft(Position& pos, istringstream& is) {
int depth, time; int depth, time;
int64_t n;
if (!(is >> depth)) if (!(is >> depth))
return; return;
time = get_system_time(); time = get_system_time();
n = Search::perft(pos, depth * ONE_PLY); int64_t n = Search::perft(pos, depth * ONE_PLY);
time = get_system_time() - time; time = get_system_time() - time;