microsoft / microsoft/mimalloc

Document supported OS, architectures, and compilers

Aperta
#482 8 commenti 0 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

Lingua principale
C
Stelle
13.4k
Fork
1.2k
Merge medio
4g 45m
PR unite (30g)
13

Descrizione

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.

Guida per i contributori

Nessuna guida per i contributori indicizzata per questo repository

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Direzione di ricerca

Inizia con il README e i controlli della piattaforma e del compilatore nel codice sorgente, quindi confrontali con i risultati del Python buildbot descritti nell’issue. Il lavoro è completato quando il README documenta chiaramente le combinazioni di sistema operativo, architettura e compilatore supportate o testate, distinguendo i casi sconosciuti da quelli non supportati.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Valutazione

Stack tecnologico
c
Ambito
compilers, documentation, operating-systems
Tipo di issue
Documentazione
Difficoltà
4/5
Tempo stimato
3-5 giorni
Stato di attività
Ferma
Chiarezza
Abbastanza chiara
Idoneità per principianti
45/100

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.