Comments (5)
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.
to actually address this problem we need
- 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)
- To expand the parsing beyond assuming the data is on the second to last line
from fast-chess.
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.
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.
solved in #97
from fast-chess.
Related Issues (20)
- cli parsing refactor doesnt allow for spaces in event names HOT 2
- discard=true does not work
- something wrong with the dir command? HOT 2
- todo: throw error instead of warning for invalid sprt configuration
- todo: move all exception handling and input error messages to tournament_manager.cpp (maybe)
- todo: add doctest tests for new cli options
- Windows: high memory usage even with low number of rounds HOT 20
- cant build from src HOT 12
- make trace logger output exclusively on the log file and not the command line HOT 3
- report the fen and command when repoorting illegal moves
- Add time control to Results HOT 10
- zlib not available in CI dev builds
- Illegal move <none> played by sf1 HOT 8
- feat: add engine gauntlets HOT 4
- feat: add engine gauntlets
- issue with latest commit
- illegal pv warning prints wrong fen HOT 2
- memory usage increases proportionally to number of rounds HOT 3
- todo: add more unit tests
- todo: add ponder HOT 4
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from fast-chess.