terralang / terra

Terra is a low-level system programming language that is embedded in and meta-programmed by the Lua programming language.
terralang.org
Other
2.72k stars 201 forks source link

RFC: Deprecate LLVM <= 10 #543

Closed elliottslaughter closed 1 year ago

elliottslaughter commented 2 years ago

Similarly to #471, I want to start this early so that we can collect a list of users who are currently on LLVM 10 or lower. Please reply if this is you. I'd like to ask that you try out LLVM 13 (or at least 11) and see if it works for you.

After the deprecation, the minimum LLVM version will be 11.

This deprecation will land no sooner than Terra version 1.0.0, and code will be removed at earliest in 1.1.0.

Steps:

  1. [DONE] Gather list of users on LLVM <= 10. Encourage/request everyone to move to at least LLVM 11 or ideally 13. We'll keep this phase open for at least 6 months to make sure we get everyone.
  2. [DONE] Formally deprecate LLVM <= 10. This means changing the README and release notes. No code changes.
  3. [DONE] Wait another 6 months before removing the code.

~I'm not currently aware of any blockers as of the time of writing.~ (There are now, see below.) I am actively encouraging all users who work with me directly to move to LLVM 13.

TODO:

elliottslaughter commented 2 years ago

All issues I'm aware of have been resolved for some months. All users I know of who were on LLVM <= 10 have upgraded to 13. I posted a reminder on Zulip in case anyone missed this issue.

Please, if you are using LLVM <= 10, speak up now.

I plan to proceed to the next stage (formal deprecation) around the same time that I complete #554, so that the formal deprecation lands in version 1.1.0. ~No code removal will occur prior to 1.2.0.~ I am considering code removal in 1.1.0 if it makes the opaque pointer migration easier (see #553).

elliottslaughter commented 2 years ago

Formal deprecation was in #612.

Depending on how #553 goes, I may need to accelerate the timeline for removal. Opaque pointers are a hard blocker for LLVM 15, and I'm not sure how painful it's going to be to keep both paths in one code base, so I may need to remove versions prior to the availability of opaque pointers in order to make the migration sane.

elliottslaughter commented 2 years ago

S3D is potentially a blocker for this, though it's not clear right now if there are any fundamental issues or just old builds that need updating.

elliottslaughter commented 1 year ago

I have discovered a miscompilation that appears to have crept in somewhere between LLVM 6 and 11. This definitely blocks the final removal of these versions until it is resolved.

https://github.com/StanfordLegion/legion/issues/1385

rongduo commented 1 year ago

很高兴收到您的邮件,我会尽快处理的,谢谢。

elliottslaughter commented 1 year ago

I issued a 30 day ban on user @rongduo for spamming this issue tracker. A previous public warning was issued at https://github.com/terralang/terra/issues/553#issuecomment-1258913358 . If the behavior continues, I will need to make the ban permanent.

elliottslaughter commented 1 year ago

634 has been merged, and LLVM <= 10 permanently removed.