diff --git a/3rdparty/CMakeLists.txt b/3rdparty/CMakeLists.txt index 93565ae099b..fd627e5a104 100644 --- a/3rdparty/CMakeLists.txt +++ b/3rdparty/CMakeLists.txt @@ -108,11 +108,16 @@ FetchContent_Declare( SOURCE_SUBDIR dont-add-this-project-with-add-subdirectory) +set(_patch_file "${CMAKE_CURRENT_SOURCE_DIR}/patches/xgrammar_constexpr.patch") FetchContent_Declare( xgrammar GIT_REPOSITORY https://github.com/mlc-ai/xgrammar - GIT_TAG v0.1.25 # e4e816f5f0fe39f5b1601a17a4552307fa3b70ff + GIT_TAG v0.1.32 # 62e13551b9b63251114894c5ee638564b160dd48 GIT_SHALLOW TRUE # NOTE: TensorRT-LLM only uses the headers SOURCE_SUBDIR - dont-add-this-project-with-add-subdirectory) + dont-add-this-project-with-add-subdirectory + PATCH_COMMAND + bash -c "patch -p1 --forward --batch --dry-run -i '${_patch_file}' && \ + patch -p1 --forward --batch -i '${_patch_file}' || \ + echo 'Patch already applied, skipping.'") diff --git a/3rdparty/patches/xgrammar_constexpr.patch b/3rdparty/patches/xgrammar_constexpr.patch new file mode 100644 index 00000000000..f4e5be99a21 --- /dev/null +++ b/3rdparty/patches/xgrammar_constexpr.patch @@ -0,0 +1,19 @@ +--- a/cpp/grammar_functor.cc ++++ b/cpp/grammar_functor.cc +@@ -1750,11 +1750,11 @@ + void Apply(Grammar* grammar); + static std::optional HashSequence(const Grammar& grammar, int32_t sequence_id); + +- static const int16_t kNotEndStateFlag = -0x100; +- static const int16_t kEndStateFlag = -0x200; +- static const int16_t kSelfRecursionFlag = -0x300; +- static const int16_t kSimpleCycleFlag = -0x400; +- static const int16_t kUnKnownFlag = -0x500; ++ static constexpr int16_t kNotEndStateFlag = -0x100; ++ static constexpr int16_t kEndStateFlag = -0x200; ++ static constexpr int16_t kSelfRecursionFlag = -0x300; ++ static constexpr int16_t kSimpleCycleFlag = -0x400; ++ static constexpr int16_t kUnKnownFlag = -0x500; + + private: + Grammar* grammar_; diff --git a/requirements.txt b/requirements.txt index 36e5201031c..65d622cd91b 100644 --- a/requirements.txt +++ b/requirements.txt @@ -52,9 +52,9 @@ ordered-set peft patchelf einops -flashinfer-python~=0.6.1 +flashinfer-python==0.6.4 opencv-python-headless -xgrammar==0.1.25 +xgrammar==0.1.32 llguidance==0.7.29 jsonschema backoff diff --git a/security_scanning/pyproject.toml b/security_scanning/pyproject.toml index bc8c4e8e68f..c9a687b5089 100644 --- a/security_scanning/pyproject.toml +++ b/security_scanning/pyproject.toml @@ -55,7 +55,7 @@ dependencies = [ "patchelf (>=0.17.2.4,<0.18.0.0)", "einops (>=0.8.2,<0.9.0)", "flashinfer-python (>=0.6.1,<0.7.0)", - "xgrammar (==0.1.25)", + "xgrammar (==0.1.32)", "llguidance (==0.7.29)", "jsonschema (>=4.26.0,<5.0.0)", "backoff (>=2.2.1,<3.0.0)",