TE
TechEcho
Home24h TopNewestBestAskShowJobs
GitHubTwitter
Home

TechEcho

A tech news platform built with Next.js, providing global tech news and discussions.

GitHubTwitter

Home

HomeNewestBestAskShowJobs

Resources

HackerNews APIOriginal HackerNewsNext.js

© 2025 TechEcho. All rights reserved.

LLVM's New Versioning Scheme

101 pointsby zmodemover 8 years ago

7 comments

eslaughtover 8 years ago
It&#x27;s nice that they&#x27;re being explicit about breaking changes, but it&#x27;s still a pain that they&#x27;re doing them in the first place. I understand the argument for moving quickly, but projects that use LLVM suffer as a result.<p>Basically, any code that uses LLVM bitrots very quickly because the API is (potentially) incompatible on each release. The way that large projects (like Rust [0]) generally deal with this is by sticking close to the bleeding edge of development, and have an established process for integrating changes as they come. But smaller projects just don&#x27;t have the resources to do this.<p>KLEE (a symbolic execution engine) appears to be 5 versions behind the newest release [1]. Terra (a language focusing on metaprogramming for high performance) [2] is only one version behind, but the maintainer has since graduated and I&#x27;m worried the community is too small to keep it from bitrotting.<p>Nominally the C API is supposed to solve this by being more stable, but it achieves this by exposing a smaller surface area, which means you can&#x27;t do a lot of what you might need to do with this API.<p>I&#x27;d like a stable, full-featured API for LLVM. It sounds like they&#x27;re going this way with the bitcode format, and I think they could start to move in this direction with the API as well. When the project was young, the argument was that avoiding stability allowed the developers the flexibility to explore design decisions and make different tradeoffs over time necessary for the long-term health of the code base. I understand that. But this instability makes it essentially impossible to maintain client projects without ongoing effort, and means that small projects almost always bitrot.<p>I think we know enough now to develop a pretty decent stable API for LLVM. And I&#x27;d be a lot more confident in trusting smaller projects that use LLVM if such an API existed.<p>[0]: <a href="https:&#x2F;&#x2F;www.rust-lang.org&#x2F;" rel="nofollow">https:&#x2F;&#x2F;www.rust-lang.org&#x2F;</a> [1]: <a href="https:&#x2F;&#x2F;klee.github.io&#x2F;getting-started&#x2F;" rel="nofollow">https:&#x2F;&#x2F;klee.github.io&#x2F;getting-started&#x2F;</a> [2]: <a href="http:&#x2F;&#x2F;terralang.org&#x2F;" rel="nofollow">http:&#x2F;&#x2F;terralang.org&#x2F;</a>
评论 #13183251 未加载
static_noiseover 8 years ago
I, for one, cannot keep track of which version we&#x27;re currently at. It used to be that a major version was introduced with fanfare and broke things. The holy 1.0 or versions such as Python 3 and or Gnome 3. I will always remember if I&#x27;m running 2.x or 3.x.<p>Some time after the major version hits 3, the madness seems to begin. Am I running Firefox 73 or 85 or was that last years version? I honestly don&#x27;t know anymore. Are the stable versions even, odd, Fibonacci or prime?<p>Why not be brave about it and use date-based numberings such as 16.12!
评论 #13180213 未加载
评论 #13180795 未加载
评论 #13180411 未加载
评论 #13184512 未加载
评论 #13180208 未加载
评论 #13180196 未加载
评论 #13184626 未加载
评论 #13191249 未加载
nemothekidover 8 years ago
I&#x27;m glad that semver is being widely adopted outside of the npm&#x2F;rails world. It&#x27;s incredibly useful to understand how much work will go into upgrading a package.<p>I think the attachment around &quot;saving&quot; major releases are really just attachments to marketing messages of yesteryear. It still feels good to announce &quot;Library Version 3!&quot;, but from a technical perspective, semver is far more consumable and sensible. I&#x27;d rather be confident Lib v27.3.0 -&gt; v27.4.3 won&#x27;t break my build than having v2.9.0 -&gt; v2.10.11 break my build, but look nicer.
amitlanover 8 years ago
Postgres is going in this direction starting with the next release: <a href="http:&#x2F;&#x2F;www.databasesoup.com&#x2F;2016&#x2F;05&#x2F;changing-postgresql-version-numbering.html" rel="nofollow">http:&#x2F;&#x2F;www.databasesoup.com&#x2F;2016&#x2F;05&#x2F;changing-postgresql-vers...</a>
satysinover 8 years ago
Why can&#x27;t they just go with a year based version number like Ubuntu and Windows? $year.$month-$patch so LLVM 5.0 would be LLVM 17.09 (September 2017).
评论 #13182584 未加载
评论 #13181415 未加载
hossbeastover 8 years ago
They still haven&#x27;t got it right ; you can only decide how the version number should change by comparing the software to previously released versions. Deciding ahead of time how it will change on a periodic basis is a mistake.
wuxbover 8 years ago
So stupid. The old scheme is easy to read if you just remove the dot in your mind: 3.8 -&gt; 38, 3.9 -&gt; 39. Now They make it complex by 38.0 -&gt; 38, 39.0 -&gt; 39. Removing a dot and a zero. Not helpful and So stupid.