bob wrote: ↑Tue Sep 10, 2019 6:08 am
OK, a few notes.
(1) the stdatomic.h error requires the definition of _cplusplus which I assume is a windows thing. Note that this changed since I went to the new syzygy support code that Ronald pointed me to. If that is defined, then it includes atomic.h which I assume (again) is a windows thing... This means that using a c++ compile will likely work for that file (tbprobe.c I think). Or you can find out what the standard C compiler defines as an identifying string and replace the cplussplus with that string.
I took a look at tbprobe.c, and that looks fine, so I downloaded some of those include files that didn't come with VS2019, and put them in my library folder.
https://github.com/zenny-chen/simple-st ... r-VS-Clang
Code: Select all
#ifdef __cplusplus
#include <atomic>
#else
#include <stdatomic.h>
#endif
#include <stdint.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
typedef uint8_t bool; //illegal
#include "tbprobe.h"
#ifdef __cplusplus
using namespace std;
#endif
1 error and multiple warnings.
tbprobe.c(34): error C2628: 'uint8_t' followed by 'bool' is illegal (did you forget a ';'?)
changed to:
Code: Select all
typedef uint8_t; bool; // correct?
Notable warnings...
thread.c(455): warning C4028: formal parameter 1 different from declaration
thread.c(888): warning C4028: formal parameter 1 different from declaration
tbprobe.c(180): warning C4005: 'max': macro redefinition
C:\Program Files (x86)\Windows Kits\10\include\10.0.18362.0\ucrt\stdlib.h(1289): note: see previous definition of 'max'
tbprobe.c(181): warning C4005: 'min': macro redefinition
C:\Program Files (x86)\Windows Kits\10\include\10.0.18362.0\ucrt\stdlib.h(1290): note: see previous definition of 'min'
tbprobe.c(484): warning C4028: formal parameter 10 different from declaration
tbprobe.c(529): warning C4028: formal parameter 11 different from declaration
tbprobe.c(579): warning C4028: formal parameter 12 different from declaration
tbprobe.c(579): warning C4028: formal parameter 13 different from declaration
tbprobe.c(579): warning C4028: formal parameter 14 different from declaration
tbprobe.c(612): warning C4028: formal parameter 12 different from declaration
tbprobe.c(612): warning C4028: formal parameter 13 different from declaration
tbprobe.c(795): warning C4142: 'tb_init': benign redefinition of type
tbprobe.h(155): note: see declaration of 'tb_init'
tbprobe.c(2617): warning C4028: formal parameter 2 different from declaration
(2) many of the other errors seem to be around the RESTRICT password which was something Eugene Nalimov added to Crafty years ago. For all of the other errors (option.c, book.c and such) they were not changed from 25.2 to 25.3, so something changed in windows C compiler (big surprise there). If someone is interested in pursuing these, let me know. I have cleaned up the formats issues, and removed all the RESTRICTs everywhere. Still compiles clean on my gcc box and using clang on my MacBook... If you are interested, I can zip and email you the complete source and we can try a few compile cycles to see if these can be cleaned up for windows. (this is one reason I despise microsoft).
This sounds good. The real problem was the transition from 25.0.1 to 25.2, replacing the EGTB.
Indeed, I am always interested.
BTW I believe those errors in option.c spin around using size_t and uint64_t in different places. Think I have fixed that as this really is a 64 bit only program anyway so size_t is not really needed and seems to aggravate MSVC as being different from uint64_t (which are both supposed to resolve to the same thing size-wise.)
Also a good plan.
That said, I re-enabled tbprobe.c in crafty.c, and added /DSYZYGY to Makefile.xp
It compiles after that 1 change, with those warnings above, & pending anything from the incoming changes you've made.
White(1): egtb
SYZYGY EGTB access enabled, 3 piece TBs found
It appears to be working.
Ready to test what you have.