Bug introduced in 11.2 and persisting through 11.3
I maintain a C++ library with a WSTP interface to Mathematica. Some of my users have noticed that in Mathematica versions 11.2 and 11.3, they see a compilation error that
WSEvaluateString isn't defined. Some compilers hint that it might be a typo for
MLEvaluateString. This puzzled me, as I thought that
MLEvaluateString was deprecated, as it had been replaced by
WSEvaluateString during the MathLink to WSTP rebrand. This is also mentioned in the docs.
So I checked the
wstp.h header file for a few recent versions of Mathematica. I don't have access to them all, let alone a change log! I noticed that in Mathematica 11.1,
wstp.h indeed defines
WSEvaluateString. But in Mathematica 11.3, it contains only
There's also a new
_REBRAND_H_ block in the 11.3
wstp.h header file, that uses macros to make aliases between
ML function names. But there isn't one for
Wolfram technical support confirmed that it was a bug affecting 11.2 onwards. Are there any ways to circumvent build problems in C callers using e.g., preprocessor macros?