Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Remove now unsupported llvm versions #11403

Closed
wants to merge 1 commit into from
Closed

Conversation

rdp
Copy link
Contributor

@rdp rdp commented Nov 5, 2021

No description provided.

@rdp
Copy link
Contributor Author

rdp commented Nov 5, 2021

6.x etc. all seem to fail compiling these days.

@caspiano
Copy link
Contributor

caspiano commented Nov 5, 2021

Would it be worth adding a smoke test for the range of supported LLVM versions?

@Sija
Copy link
Contributor

Sija commented Nov 5, 2021

Removing supported llvm versions should incl. code cleanups as well.

@j8r
Copy link
Contributor

j8r commented Nov 5, 2021

Yes, some macro conditions can be removed at https://github.com/crystal-lang/crystal/blob/master/src/llvm/ext/llvm_ext.cc

@straight-shoota straight-shoota linked an issue Nov 5, 2021 that may be closed by this pull request
@straight-shoota
Copy link
Member

Would it be worth adding a smoke test for the range of supported LLVM versions?

A first step for that is in #11343. It's not a smoke, but a full compiler test.

@HertzDevil
Copy link
Contributor

What do we do from here? Add a matrix to the LLVM 13 job?

@straight-shoota
Copy link
Member

Adding CI for older, supported versions LLVM is not really a part of this issue. It is about removing older, unsupported versions.

The way forward, additionally to removing the versions from llvm-versions.txt, is cleaning up code that specifically deals with the removed versions.

@HertzDevil
Copy link
Contributor

I think we should drop support for 7.1 as well because it doesn't support methods like LLVMBuildLoad2 that would eventually become necessary due to LLVM's transition to opaque pointers (see #12484).

@straight-shoota
Copy link
Member

Yeah, I think we can safely drop support for LLVM 7 at this point.

@straight-shoota
Copy link
Member

straight-shoota commented Oct 28, 2022

Or maybe even more?

In light of https://forum.crystal-lang.org/t/compilation-issue-with-crystal-1-6-x/5038 it reminds us that older LLVMs can cause problems (because of bugs in LLVM). So perhaps we should at least spit out a warning when linking against anything older than LLVM 13 or so?

@HertzDevil
Copy link
Contributor

It is too quick to say that it's LLVM's problem instead of ours with that issue. Besides, LLVM 11.1 was the most recent version available by the time Crystal 1.0.0 was released, and it would be odd to drop support for it within Crystal 1.x.

There is also the question of whether certain long-term support OSes could keep up with LLVM releases; we certainly hope that the default LLVM works out of the box. For reference, LLVM bumps its major version every 6 months or so.

@straight-shoota
Copy link
Member

Yeah, I don't mean to anticipate the actual cause of that issue. Whether that is on LLVM or not, we know that there are relevant bugs in older LLVM releases.

And we don't need to drop support entirely, but adding a warning might be good. It can be shown when building the compiler, so it won't bother when using the compiler.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

LLVM supported versions
6 participants