I tried building MLX on Windows, of course it didn't build but I think it is not very hard to make it work there.
A few problems I met so far:
CMake can not find OpenBLAS automatically on Windows, I had to hardcode the path:
-DBLAS_LIBRARIES=openblas64/lib/libopenblas.a -DLAPACK_LIBRARIES=openblas64/lib/libopenblas.a -DBLAS_INCLUDE_DIRS=openblas64/include -DLAPACK_INCLUDE_DIRS=openblas64/include
MSVC has no _Complex but lapack_complex_float is defined to it.
gguf-tools does not support Windows but we can turn off it with -DMLX_BUILD_GGUF=OFF.
io/load.h uses unix system calls for IO, I can make it work on Windows by replacing them with stdio.h equivalents.
The make_compiled_preamble.sh needs a Windows version.
mx.compile is going to need many works to find and call MSVC.
And there will likely be much more problems since compilations are mostly blocked by io/load.h.
I don't really like Windows nor enjoy working on it, but the majority of world is using it and I figured out whatever I'm going to work on I would need Windows support to reach wider audience. What do you think?
I tried building MLX on Windows, of course it didn't build but I think it is not very hard to make it work there.
A few problems I met so far:
-DBLAS_LIBRARIES=openblas64/lib/libopenblas.a -DLAPACK_LIBRARIES=openblas64/lib/libopenblas.a -DBLAS_INCLUDE_DIRS=openblas64/include -DLAPACK_INCLUDE_DIRS=openblas64/include
_Complex
butlapack_complex_float
is defined to it.-DMLX_BUILD_GGUF=OFF
.io/load.h
uses unix system calls for IO, I can make it work on Windows by replacing them withstdio.h
equivalents.make_compiled_preamble.sh
needs a Windows version.mx.compile
is going to need many works to find and call MSVC.And there will likely be much more problems since compilations are mostly blocked by
io/load.h
.I don't really like Windows nor enjoy working on it, but the majority of world is using it and I figured out whatever I'm going to work on I would need Windows support to reach wider audience. What do you think?