Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion VERSION
Original file line number Diff line number Diff line change
@@ -1 +1 @@
0.1.7
0.1.7.post1
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🔴 Critical

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
echo "=== Searching for TL_DISABLE_FAST_MATH references ==="
rg -n "TL_DISABLE_FAST_MATH" --type=py 2>/dev/null || echo "No matches found"

echo -e "\n=== Checking git log for TL_DISABLE_FAST_MATH mentions ==="
git log --all --oneline --source --all | grep -i "TL_DISABLE_FAST_MATH\|fast_math\|deprecated" | head -20 2>/dev/null || echo "No git log matches"

echo -e "\n=== Searching for deprecation warnings related to fast_math ==="
rg -n -C3 "deprecat" --type=py | grep -i "fast\|math" 2>/dev/null || echo "No deprecation mentions found"

echo -e "\n=== Checking VERSION file history ==="
git log --all --oneline VERSION 2>/dev/null | head -10 || echo "Cannot access git history"

Repository: tile-ai/tilelang

Length of output: 1231


🏁 Script executed:

#!/bin/bash
echo "=== Check PassConfigKey enum for TL_DISABLE_FAST_MATH ==="
rg -n "PassConfigKey|TL_DISABLE_FAST_MATH" --type=py -A2 | head -50

echo -e "\n=== Check git diff for recent VERSION bump ==="
git show be9d174 --stat

echo -e "\n=== Check recent ENABLE_FAST_MATH refactor ==="
git show e7e3835 --stat

Repository: tile-ai/tilelang

Length of output: 50372


🏁 Script executed:

#!/bin/bash
echo "=== Check the ENABLE_FAST_MATH refactor commit ==="
git show e7e3835 --name-only | head -30

echo -e "\n=== Check if TL_DISABLE_FAST_MATH enum value exists ==="
git show e7e3835:tilelang/transform/pass_config.py 2>/dev/null | grep -A5 -B5 "DISABLE_FAST_MATH\|ENABLE_FAST_MATH" || echo "Check previous version"

echo -e "\n=== Check current pass_config.py for these keys ==="
cat tilelang/transform/pass_config.py | grep -A2 -B2 "FAST_MATH\|ENABLE_FAST_MATH"

Repository: tile-ai/tilelang

Length of output: 2743


Post-release versioning is inappropriate for removing public API.

According to semantic versioning best practices, deprecated APIs should first be marked in a minor release with warnings, and removal should only occur in a subsequent major release after users have time to migrate. The version bump to 0.1.7.post1 violates this practice.

Git history shows that TL_DISABLE_FAST_MATH was deprecated in commit e7e3835 (marked "will be deprecated in the 0.1.7 release"), but it has been completely removed from the PassConfigKey enum in this post-release. This is a breaking change because users still actively using TL_DISABLE_FAST_MATH (as seen in examples/deepseek_v32/inference/kernel.py) will encounter errors.

Post-release versions (.post1) are reserved for packaging or distribution fixes without functional changes. Removing a public configuration key warrants at least a minor version bump (e.g., 0.2.0). If the deprecation was properly introduced in 0.1.7 with runtime warnings, a subsequent minor or major release should have been used for the actual removal.

8 changes: 1 addition & 7 deletions tilelang/engine/lower.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,6 @@
from tvm.target import Target
from tilelang.contrib import hipcc, nvcc
from tilelang.transform import PassConfigKey
from tilelang.utils.deprecated import deprecated_warning
from tilelang.engine.param import KernelParam, CompiledArtifact
from tilelang.utils.target import determine_target
from tilelang.engine.phase import (
Expand Down Expand Up @@ -76,12 +75,7 @@ def tilelang_callback_cuda_compile(code, target, pass_config=None):

# Read pass-config keys (string-valued) like in jit.adapter.libgen.compile_lib
cfg = pass_config or {}
if cfg.get(PassConfigKey.TL_DISABLE_FAST_MATH, False):
deprecated_warning("TL_DISABLE_FAST_MATH", "TL_ENABLE_FAST_MATH", "0.1.7")
disable_fast_math = bool(cfg.get(PassConfigKey.TL_DISABLE_FAST_MATH, True))
enable_fast_math = not disable_fast_math
else:
enable_fast_math = bool(cfg.get(PassConfigKey.TL_ENABLE_FAST_MATH, False))
enable_fast_math = bool(cfg.get(PassConfigKey.TL_ENABLE_FAST_MATH, False))
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🔴 Critical

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
# Search for any remaining references to TL_DISABLE_FAST_MATH in the codebase
echo "=== Searching for TL_DISABLE_FAST_MATH references ==="
rg -n 'TL_DISABLE_FAST_MATH' --type=py
echo ""
echo "=== Searching in documentation ==="
rg -n 'TL_DISABLE_FAST_MATH' --type=md
echo ""
echo "=== Searching in all file types (case-insensitive) ==="
rg -in 'disable.*fast.*math' --max-count=20

Repository: tile-ai/tilelang

Length of output: 575


🏁 Script executed:

#!/bin/bash
# Verify the context around line 78 in tilelang/engine/lower.py
echo "=== Context around line 78 in lower.py ==="
sed -n '70,110p' tilelang/engine/lower.py | cat -n

Repository: tile-ai/tilelang

Length of output: 1927


🏁 Script executed:

#!/bin/bash
# Check if TL_ENABLE_FAST_MATH is properly defined/used elsewhere
echo "=== Searching for TL_ENABLE_FAST_MATH usage ==="
rg -n 'TL_ENABLE_FAST_MATH' --type=py

Repository: tile-ai/tilelang

Length of output: 10638


Critical issue: Incomplete deprecation of TL_DISABLE_FAST_MATH.

While the code change at line 78 is technically correct in using only TL_ENABLE_FAST_MATH with a default of False, the deprecation of TL_DISABLE_FAST_MATH is incomplete. The deprecated flag still exists and is actively used in the codebase:

  • examples/deepseek_v32/inference/kernel.py:11 still uses TL_DISABLE_FAST_MATH: True
  • src/op/builtin.cc:27 and src/op/builtin.h:47 still define the C++ option

Breaking change: Code using the old TL_DISABLE_FAST_MATH flag will now silently fail because line 78 no longer reads this flag. This requires either:

  1. Updating all usages to TL_ENABLE_FAST_MATH, or
  2. Implementing a deprecation migration path that honors the old flag temporarily while warning users


ptxas_usage_level = cfg.get(PassConfigKey.TL_PTXAS_REGISTER_USAGE_LEVEL, None)
verbose_ptxas_output = bool(cfg.get(PassConfigKey.TL_ENABLE_PTXAS_VERBOSE_OUTPUT, False))
Expand Down
11 changes: 1 addition & 10 deletions tilelang/jit/adapter/libgen.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,6 @@
from tilelang.contrib.nvcc import get_nvcc_compiler, get_target_arch, get_target_compute_version
from tilelang.contrib.rocm import find_rocm_path, get_rocm_arch
from tilelang.env import TILELANG_TEMPLATE_PATH
from tilelang.utils.deprecated import deprecated_warning

from .utils import is_cpu_target, is_cuda_target, is_hip_target

Expand Down Expand Up @@ -60,15 +59,7 @@ def compile_lib(self, timeout: float = None):
target_arch = get_target_arch(get_target_compute_version(target))
libpath = src.name.replace(".cu", ".so")

if self.pass_configs.get(PassConfigKey.TL_DISABLE_FAST_MATH):
deprecated_warning(
"TL_DISABLE_FAST_MATH",
"TL_ENABLE_FAST_MATH",
"0.1.7",
)
enable_fast_math = not self.pass_configs.get(PassConfigKey.TL_DISABLE_FAST_MATH, True)
else:
enable_fast_math = self.pass_configs.get(PassConfigKey.TL_ENABLE_FAST_MATH, False)
enable_fast_math = self.pass_configs.get(PassConfigKey.TL_ENABLE_FAST_MATH, False)

ptxas_usage_level = self.pass_configs.get(PassConfigKey.TL_PTXAS_REGISTER_USAGE_LEVEL, None)
verbose_ptxas_output = self.pass_configs.get(PassConfigKey.TL_ENABLE_PTXAS_VERBOSE_OUTPUT, False)
Expand Down
5 changes: 0 additions & 5 deletions tilelang/transform/pass_config.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,11 +13,6 @@ class PassConfigKey(str, Enum):
TL_DISABLE_WARP_SPECIALIZED = "tl.disable_warp_specialized"
"""Disable warp specialization optimization. Default: False"""

TL_DISABLE_FAST_MATH = "tl.disable_fast_math"
"""Disable fast math optimization. Default: True
will be deprecated in the 0.1.7 release
"""

TL_ENABLE_FAST_MATH = "tl.enable_fast_math"
"""
Enable fast math optimization. Default: False
Expand Down
Loading