KhronosGroup / KhronosGroup/SPIRV-LLVM-Translator
What is the way to deprecate preview extensions?
- Dominant language
- LLVM
- Stars
- 625
- Forks
- 279
- Avg merge
- 3d 5h
- Merged PRs (30d)
- 34
Description
I'd like to discuss, what should be the way to deprecate extensions previously added to the translator as preview extension. A good example would be SPV_INTEL_token_type, which specification has never left https://github.com/intel/llvm/pull/3788 . We (Intel SYCL compiler team) are quite sure, that we won't have problems with the deprecation, but we can't say for sure if there are no pre-generated SPIR-V modules 'in the wild' which would use the extension (some time ago I've noted, that there are several projects, that use llvm-spirv with --spirv-ext=+all , for example https://github.com/llvm/llvm-project/blob/main/clang/lib/Driver/ToolChains/HIPAMD.cpp#L178 ).
Right now I've created https://github.com/KhronosGroup/SPIRV-LLVM-Translator/pull/3025 that would still support the extension during reverse translation (just in case), but will start emit an error in case if LLVM token type present in LLVM IR module during forward translation. Should the later be changed to a deprecation warning (note, right now the translator never emits warnings)?
Contributor guide
Research direction
Read the issue discussion and PR 3025 first, then trace the translator's forward and reverse handling of SPV_INTEL_token_type. The work is complete when the project has an agreed deprecation policy and the translator behavior and any needed validation reflect that decision.
Written by the indexing model from the issue text.
Assessment
- Domain
- compilers
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 25/100