# ⚠ Important packages are being released using unstable language features

**URL:** <https://forums.swift.org/t/important-packages-are-being-released-using-unstable-language-features/53576>\
**Category:** Related Projects\
**Tags:** swift-system, modify, source-stability, swift-collections\
**Created:** [November 18, 2021, 6:48pm UTC](https://forums.swift.org/t/important-packages-are-being-released-using-unstable-language-features/53576 "2021-11-18T18:48:14Z")\
**Posts on this page:** 1\
**Showing post:** 3

<div class="post-metadata">

**Author:** ![Karl](https://avatars.discourse-cdn.com/v4/letter/k/34f0e0/32.png) [@Karl](https://forums.swift.org/u/Karl)\
**Post date:** [November 20, 2021, 9:37am UTC](https://forums.swift.org/t/important-packages-are-being-released-using-unstable-language-features/53576/3 "2021-11-20T09:37:38Z")

</div>

Oh, and a few more examples just occurred to me:

- `@_exported import`, used by [swift-numerics](https://github.com/apple/swift-numerics/blob/f3365bd0b491b83c56e538ba24c9c06e3f8e3bba/Sources/Numerics/Numerics.swift#L13).
- `@inline(__always)`, used by [swift-numerics](https://github.com/apple/swift-numerics/search?q=%40inline%28__always%29), [swift-collections](https://github.com/apple/swift-collections/search?q=%40inline%28__always%29), [swift-atomics](https://github.com/apple/swift-atomics/search?q=%40inline%28__always%29), [swift-system](https://github.com/apple/swift-system/search?q=%40inline%28__always%29), etc.

Also, async-http-client [uses](https://github.com/swift-server/async-http-client/search?q=%40inline%28__always%29) `@inline(__always)`, but I'm not sure if that counts as first-party.

Now, I'm not blaming the authors of these packages - it is clear that this is a widespread problem, showing a general lack of discipline across the community when it comes to publishing releases making use of unstable language features. But I think developers do and should expect better, especially from first-party packages.

Just to reiterate @ben-cohen's point:

> [@Modify Accessors](https://forums.swift.org/t/modify-accessors/31872/302):
>
> There are no source stability commitments when it comes to underscored keywords or attributes and **no-one** should have any expectations in this regard, either at compile time or runtime.

If a package, distributed in source form, makes use of underscored keywords or attributes, it is not guaranteed to compile with the next patch/minor/major release of the compiler. The entire package, and **any projects which depend on them** , become compromised and are subject to the same lack of stability guarantees.

This is a significant danger lurking in the package ecosystem; it undercuts the idea that Swift is source-stable if so many important packages are publishing releases using unstable language features.

Also, it's just poor form. Why are some packages allowed to use these features and claim to be stable, but my packages cannot? They are able to offer better performance, modularity, and nicer APIs than is possible using actual, stable Swift language features.

---

_[View the full topic](https://forums.swift.org/t/important-packages-are-being-released-using-unstable-language-features/53576)._
