microsoft / microsoft/mimalloc

Document supported OS, architectures, and compilers

Open
#482 8 comments 0 reactions 0 assignees View on GitHub

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

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.