microsoft / microsoft/BitNet

[Bug] Windows build fails with Clang/MSVC due to missing #include <chrono>

Aperta
#492 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

Lingua principale
C++
Stelle
40.3k
Fork
3.7k
Metriche di merge delle PR
Nessuna PR unita negli ultimi 30g

Descrizione

Summary

Building on Windows with ClangCL fails due to missing #include header and const pointer type mismatch in bitnet-mad.cpp.

Steps to Reproduce

  1. Clone the repository on Windows 11
  2. Install Clang 19 via Visual Studio 2022 Build Tools + clang-cl
  3. Run CMake configuration and build
  4. Observe compilation errors

Expected Behavior

Code should compile on Windows with ClangCL without errors

Actual Behavior

Two compilation errors occur:

Error 1: Missing #include

The following files use std::chrono without explicitly including :

  • 3rdparty/llama.cpp/common/common.cpp
  • 3rdparty/llama.cpp/common/log.cpp
  • 3rdparty/llama.cpp/examples/imatrix/imatrix.cpp
  • 3rdparty/llama.cpp/examples/perplexity/perplexity.cpp

On Linux/GCC, is pulled in implicitly, but Clang on Windows is stricter.

Error 2: Const pointer mismatch (src/ggml-bitnet-mad.cpp line 811)

error: cannot initialize a variable of type 'int8_t *' with an rvalue of type 'const int8_t *'

Root Cause Analysis

The root cause is platform-specific header dependency and type constness:

  1. Header Issue: GCC on Linux transitively includes through other headers, but Clang/MSVC on Windows does not
  2. Type Issue: The code at line 811 declares int8_t * but receives a const int8_t *, which should be const int8_t *

Proposed Solution

  1. Add #include <chrono> to the four affected files
  2. Change line 811 from int8_t * to const int8_t *

Environment

  • OS: Windows 11
  • Compiler: Clang 19 (via Visual Studio 2022 Build Tools + clang-cl)
  • CMake: 3.x

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 i quattro file elencati in 3rdparty/llama.cpp/common e examples, quindi esamina src/ggml-bitnet-mad.cpp intorno alla riga 811. Riproduci la build CMake con clang-cl su Windows e verifica che gli header chrono mancanti e l'errore di const pointer siano stati risolti senza introdurre altri errori del compilatore.

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

Valutazione

Stack tecnologico
cmake, cpp
Ambito
build-system, compilers
Tipo di issue
Bug
Difficoltà
3/5
Tempo stimato
1-2 giorni
Stato di attività
Ferma
Chiarezza
Specificata chiaramente
Idoneità per principianti
58/100

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.