GithubHelp home page GithubHelp logo

Comments (5)

PGG106 avatar PGG106 commented on August 17, 2024

the problem is at line 528 of tournament.cpp, where we assume score depth and nodes to be present in the second to last output line, this results in accesses to invalid indexes and generates some faulty behaviour, a temporary hotfix (that comes with the downside of incorrect pgn reporting for any engine that splits the output) can be found in the "temporaryfix" branch

from fast-chess.

PGG106 avatar PGG106 commented on August 17, 2024

to actually address this problem we need

  1. For the findElement function to check if the element exists at all and for the absence of an element to be accounted for (this will solve the crash but leave us with only partial parsing)
  2. To expand the parsing beyond assuming the data is on the second to last line

from fast-chess.

Disservin avatar Disservin commented on August 17, 2024

Also the uci protocol says that there should be a final info report before bestmove in one line.
so I my opinion we do not need to parse this scenario however it should not cause a crash
https://backscattering.de/chess/uci/#engine-bestmove-info

from fast-chess.

PGG106 avatar PGG106 commented on August 17, 2024

there is a final info report, the problem is the info is incomplete, cutechess does somehow handle this
example of one such problematic output:

info score cp 85 depth 1 nodes 20 time 1 nps 20000 hashfull 0
info depth 1 pv e2e4
info score cp 0 depth 2 nodes 105 time 7 nps 15000 hashfull 1
info depth 2 pv e2e4 e7e5
info score cp 70 depth 3 nodes 841 time 16 nps 52562 hashfull 1
info depth 3 pv d2d4 d7d5 b1c3
info score cp 0 depth 4 nodes 2832 time 32 nps 88500 hashfull 3
info depth 4 pv d2d4 d7d5 b1c3 b8c6
info score cp 55 depth 5 nodes 14171 time 41 nps 345634 hashfull 5
info depth 5 pv d2d4 d7d5 b1c3 b8c6 g1f3
info score cp 0 depth 6 nodes 49034 time 67 nps 731850 hashfull 15
info depth 6 pv d2d4 d7d5 b1c3 b8c6 g1f3 g8f6
info score cp 40 depth 7 nodes 304384 time 147 nps 2070639 hashfull 35
info depth 7 pv e2e4 d7d5 b1c3 d5e4 c3e4 d8d5 d2d3

i'm honestly fine with partial parsing for "exotic output", the first outlined fix achieves exactly this, it's implemented in a very dirty way in the temporaryfix branch already

from fast-chess.

PGG106 avatar PGG106 commented on August 17, 2024

solved in #97

from fast-chess.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.