I'm trying to build this on Windows for Python 3.6, since I'd like to use Loopy in a project, where we ship packages to Mac, Linux & Win. I've started by trying to see if MSVC 14 could build ISL, but I'm becoming sceptical:
A few things I've done in isl/include/isl/ctx.h,
#define __attribute__(...)
and in isl/isl_arg.c:20 to
static struct isl_arg *help_arg;
Finally, I'm seeing at the end of the build
isl_hash.obj : error LNK2001: unresolved external symbol ffs
isl_stream.obj : error LNK2001: unresolved external symbol strcasecmp
build\lib.win-amd64-3.6\islpy\_isl_cffi.pyd : fatal error LNK1120: 2 unresolved externals
It looks like strcasecmp is a known one and ffs is a GCC builtin, so those can likely be mapped to Windows equivalents.
I'm worried that ignoring __attribute__ might hurt ISL correctness.
Another route would be to compile it all with GCC on MinGW 64, but I'm not sure how compatible this would be with the standard Python packages. Could that be used to produce wheels, etc?
edited to increase SNR
I'm trying to build this on Windows for Python 3.6, since I'd like to use Loopy in a project, where we ship packages to Mac, Linux & Win. I've started by trying to see if MSVC 14 could build ISL, but I'm becoming sceptical:
A few things I've done in
isl/include/isl/ctx.h,and in
isl/isl_arg.c:20toFinally, I'm seeing at the end of the build
It looks like
strcasecmpis a known one andffsis a GCC builtin, so those can likely be mapped to Windows equivalents.I'm worried that ignoring
__attribute__might hurt ISL correctness.Another route would be to compile it all with GCC on MinGW 64, but I'm not sure how compatible this would be with the standard Python packages. Could that be used to produce wheels, etc?
edited to increase SNR