microsoft / microsoft/mimalloc
Document supported OS, architectures, and compilers
Nobody has claimed this yet.
- Dominant language
- C
- Stars
- 13.4k
- Forks
- 1.2k
- Avg merge
- 4d 45m
- Merged PRs (30d)
- 13
Description
mimalloc's README does not contain a list of supported operating systems, CPU architectures, and compilers. For integration with CPython, it would be helpful to document which combinations of OS, CPU, and compiler are officially supported or at least work. Our users run Python on a lot of platforms, some of them are pretty esoteric.
Just to be clear, we do **not** expect that you add support for all these platforms yourself. For now we want to get a better understanding of support platforms.
I digged into the source code and ran mimalloc through Python buildbot farm. I got mimalloc working on majority of buildbots. The failing builds on some RHEL 7 boxes is caused by outdated GCC. There also seems to be an issue on s390x with one test case that consumes a lot of memory. I'll look into the failing test at a later point in time.
## compilers
* GCC >= 4.9
* clang >= 3.6
* MSVC >= 2012 (11.0)
* ICC (successfully tested with 2021.5, earlier might work)
* any other C99 compiler with C11 ``stdatomic.h`` or C++11 compiler
## platforms
* Windows
* X86 ``_M_IX86``
* X86_64 ``_M_X64``
* ARM64 ``_M_ARM64``
* Linux
* X86_64 ``__x86_64__``
* i386 ``__i386__``
* ARM ``__arm__`` (minimum ``__ARM_ARCH__``?)
* ARM little endian ``__ARMEL__``
* aarch64 ``__aarch64__`` (ARM 64bit, LE and BE?)
* PowerPC / PowerPC 64 (``__powerpc__``, ``__ppc__``)
* s390x (not mentioned, seem to work out of the box)
* more?
* macOS (Darwin)
* X86_64
* M1 (still work in progress?)
* Android (which archs?)
* FreeBSD, NetBSD, OpenBSD (which archs?)
* DragonFly (still buggy?)
## Unknown
* MIPS (MIPSEL, MIPS64EL)
* m86k
* PPC64 / PPC64EL (covered by ``__ppc__`` ?)
* Solaris (Illumos, OpenIndiana), with default CC
* HP-UX, with HP C compiler
* AIX with xlC compiler
* Wind River VxWorks
## Unsupported
AIX xlc compiler (13.1, 16) does not support ``stdatomic.h``. It has [GCC atomic memory access built-in functions](https://www.ibm.com/docs/en/xl-c-aix/13.1.3?topic=cbif-gcc-atomic-memory-access-built-in-functions-extension).
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with the README and the source code's platform and compiler checks, then compare them with the Python buildbot results described in the issue. Done means the README clearly documents supported or tested operating-system, architecture, and compiler combinations, while separating unknown and unsupported cases.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- c
- Domain
- compilers, documentation, operating-systems
- Issue type
- Documentation
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 45/100