If you’ve worked with concurrent programming, you know the headaches that come with data races and deadlocks. Pony was created to address these exact problems. But if you’ve looked for Pony’s support policy, you might have been surprised – it doesn’t follow the traditional “LTS for X years” or “EOL on Y date” approach that most languages use.

Let’s explore Pony’s unique support policy and version management approach.

 

Pony-Language

 

 

1. What is Pony Language?

Pony is an open-source programming language created by Sylvan Clebsch during his PhD at Imperial College London. The story behind its creation is interesting – he was frustrated by the lack of high-performance languages that could safely handle concurrent code.

Key Features of Pony

Pony provides actor-model-based concurrency and uses a unique Reference Capabilities system that completely prevents data races at compile time. Simply put, if your program compiles, you don’t need to worry about concurrency bugs.

Core Features:

  • Type Safety: Mathematically proven type system
  • Memory Safety: No concept of null at all
  • Concurrency Safety: Data race prevention at compile time
  • Lock-Free: No need for traditional synchronization mechanisms like locks or mutexes
  • Native Code: High performance through AOT (Ahead-of-Time) compilation

Each actor’s heap is garbage collected independently and concurrently, eliminating the need for “Stop the World” global garbage collection. This is a significant advantage for systems where real-time performance matters.

 

 

2. License Policy – Free to Use

Pony uses the BSD-2-Clause license. This is a very permissive open-source license with almost no restrictions on commercial use. You only need to maintain the original copyright notice when redistributing modified source code.

BSD-2-Clause Benefits:

  • Commercial use allowed
  • No obligation to release source code
  • Freedom to modify and redistribute
  • Much less restrictive than GPL

Official license information is available in the LICENSE file in the GitHub repository.

 

 

3. No Traditional LTS/EOL? Pony’s Unique Approach

This is the most important part. Pony is still in pre-1.0 status and regularly introduces breaking changes. Unlike mature languages that promise “5 years of LTS support” or “EOL in 2027,” Pony doesn’t follow traditional versioning policies.

So How Does Pony Handle Support?

Pony uses a Platform-based Support Policy. Instead of setting support periods for specific Pony versions, they provide builds for each OS platform until that platform’s security update period ends.

 

 

4. Platform Support Policy and End Dates (As of November 2025)

Currently Fully Supported Platforms

Based on the latest release information, the following platforms are officially supported:

Platform Architecture Support Started Support Ends Status
Alpine Linux 3.22 amd64, arm64 2025-10 2027 Until security updates end
Alpine Linux 3.21 amd64, arm64 2025-10 2026 Until security updates end
Alpine Linux 3.20 amd64, arm64 2025-04 2026 Until security updates end
Ubuntu 24.04 LTS amd64 2024 2029 Ubuntu security support period
Ubuntu 24.04 LTS arm64 2025-10 2029 Ubuntu security support period
Ubuntu 22.04 LTS amd64 2022 2027 Ubuntu security support period
Windows 11 amd64, arm64 Ongoing TBD Full Support
macOS amd64 (Intel) Ongoing TBD Full Support
macOS arm64 (Apple Silicon) 2024 TBD Restored in 2024

Recently Discontinued Platforms (Moved to Best Effort)

Platform Discontinued Last Supported Version Reason
Fedora 41 2025-10 Before 0.60.4 EOL approaching, builds stopped
Fedora 39 Early 2025 0.56.x Reached EOL
Ubuntu 20.04 LTS 2025-10 0.59.x Reached EOL
Ubuntu 18.04 LTS 2023 0.54.x Reached EOL, dropped from 0.55.0
FreeBSD 2023 0.55.x Full Support dropped due to lack of CI resources

What “Best Effort” Means

Best Effort platforms have support code in the codebase but don’t receive testing or pre-built binaries. You can build from source, but the Pony team doesn’t officially test or support them.

Current Best Effort Platforms:

  • DragonFlyBSD (x86 only)
  • FreeBSD (all, after 0.55.x)
  • Windows 10 (x86 only)
  • Ubuntu 20.04 (after 0.60.0)
  • Ubuntu 18.04 (after 0.55.0)
  • Fedora 39 (after 2025)
  • Fedora 41 (after October 2025)

 

 

5. Complete Version History – 2016 to Present

Pony is currently in the 0.60 series. Here’s a comprehensive timeline from the initial public releases in 2016 through 2025.

Major Version Timeline

Version Series Key Version Release Date Major Changes
0.60.x 0.60.4 2025-10-31 Alpine 3.22 added, Fedora 41 builds stopped
0.60.3 2025-10-20 Multiplatform versioned Docker images
0.60.2 2025-10-18 Multiplatform release Docker images
0.60.0 2025-10-15 Ubuntu 20.04 dropped, LLVM 18.1.8, arm64 Windows added
0.59.x 0.59.0 2025-04-26 Runtime event tracing, LLVM 17.0.1
0.58.x 0.58.13 2025-03-09 Epoll ASIO bug fix
0.58.12 2025-03-01 Trait inheritance bug fix
0.58.11 2025-02-22 Actor reaping bug fix
0.58.10 2025-02-01 Critical Security: ISO Soundness Issue
0.57.x 0.57.0 2024 Actor pinning feature added
0.56.x 0.56.0 2024 Alpine 3.17+ required, linking compatibility changes
0.55.x 0.55.2 2024 Actor heap optimization bug fix
0.55.1 2024 Heap chunk bug
0.55.0 2024 Docker images switched to Ubuntu 22.04
0.50.x-0.54.x Multiple 2023-2024 Stability improvements and optimizations
0.40.x-0.49.x Multiple 2021-2022 Continuous feature improvements
0.35.x 0.35.1 2020-05 Windows ProcessMonitor bug fix
0.35.0 2020 Major feature updates
0.27.x 0.27.0 2018 LLVM 7/6/5 official support, LLVM 3.9 deprecation announced
0.21.x 0.21.3 2017-12 LLVM 3.7, 3.8 support dropped
0.21.1 2017-12 Scheduler memory management improvements
0.14.x 0.14.0 2017-05 Critical bug fixes, network error handling enforcement
0.13.x 0.13.0 2017-04 Type system issue fixed (high priority)
0.10.x-0.12.x Multiple 2016-2017 Initial stabilization
0.6.x-0.9.x Multiple 2016-10 ~ 2016-11 Initial public releases
0.3.x-0.5.x 0.5.0 2016-09 Early development versions
0.4.0 2016-09 Early development
0.3.3 2016-09 Early development

Detailed 2024-2025 Releases

Version Date Key Content Priority
0.60.4 2025-10-31 Alpine 3.22 arm64/amd64 support added Regular
0.60.3 2025-10-20 Multiplatform versioned images Regular
0.60.2 2025-10-18 Multiplatform release images Regular
0.60.0 2025-10-15 Ubuntu 20.04 dropped, ld.gold removed, arm64 Windows Important
0.59.0 2025-04-26 Chromium JSON tracing, GC improvements Important
0.58.13 2025-03-09 Epoll race condition fix Regular
0.58.12 2025-03-01 Trait method inheritance fix Regular
0.58.11 2025-02-22 Use-after-free fix Important
0.58.10 2025-02-01 ISO variable soundness issue Critical

 

 

6. Critical Security Update History

Security patches you must know about when using Pony:

Version Date Issue Severity Recommended Action
0.58.10 2025-02-01 ISO variable matching soundness issue Critical Update immediately
0.58.11 2025-02-22 Use-after-free in fast actor reaping High Update recommended
0.14.0 2017-05 GC bugs due to hashmap implementation error High Update recommended
0.13.0 2017-04 Type system stability issues High Update recommended

Version 0.58.10 is particularly critical. This version fixed a serious issue where Pony’s core guarantee of preventing data races could be violated, so immediate updates were recommended for all users.

 

 

7. LLVM Version Support Policy

Since Pony uses LLVM as its backend, LLVM version support is important:

Pony Version Supported LLVM Versions Notes
0.60.0+ LLVM 18.1.8 Current version
0.59.0+ LLVM 17.0.1 Updated April 2025
0.27.0 LLVM 7, 6, 5 Official support added
After 0.27.0 LLVM 3.9 Support ended
After 0.21.3 LLVM 3.7, 3.8 Support dropped

 

 

8. Breaking Changes Policy

As a pre-1.0 language, Pony regularly introduces breaking changes, but these changes are usually fairly easy to adapt to.

Breaking Changes Response Strategy

Step Action Resource
1. Monitor Check CHANGELOG regularly Official GitHub
2. Stay Informed Read Release Notes Official Website
3. Community Use Zulip Chat Community
4. Update Sequential version upgrades (don’t skip)

 

 

9. Docker Image Support Policy Changes

Currently Available Docker Images (As of November 2025)

Since October 2025, multiplatform (amd64, arm64) Docker images are available:

Tag Platform Base OS Purpose
ponyc:nightly amd64, arm64 Alpine 3.21 Latest development builds
ponyc:release amd64, arm64 Alpine 3.21 Latest stable release
ponyc:0.60.4 amd64, arm64 Alpine 3.21 Specific version

Discontinued Docker Images

Tag Pattern Discontinued Replacement
ponyc:*-alpine 2025-10 Use nightly tag
glibc-based images 2025-10 Only musl-based (Alpine) provided
Windows containers 2025-10 Discontinued due to low usage

 

 

10. Installation and Version Management – Ponyup

The Pony ecosystem provides an official version management tool called ponyup.

Installing Ponyup

Linux/macOS:

sh -c "$(curl --proto '=https' --tlsv1.2 -sSf https://raw.githubusercontent.com/ponylang/ponyup/latest-release/ponyup-init.sh)"

Windows: See the official installation guide.

Version Management Commands

# Install latest release
ponyup update ponyc release

# Install specific version
ponyup update ponyc 0.60.4

# Install nightly build
ponyup update ponyc nightly

# Check installed version
ponyc --version

 

 

11. Production Environment Considerations

Applications written in Pony are currently used in production environments. However, the pre-1.0 status should be considered.

Production Checklist

Item Consideration Recommendation
Complex Concurrency Need to solve? ✅ Recommended
Team Capability Can handle breaking changes? ✅ Recommended
Performance Requirements Need high performance and predictable latency? ✅ Recommended
Long-term Maintenance Long-term operation without updates? ⚠️ Careful
Legacy Integration Integration with existing systems? ⚠️ Careful
Learning Time Can learn Reference Capabilities? Needs evaluation

 

 

12. When is 1.0? Future Roadmap

The Pony team is working toward a 1.0 release, but no specific timeline has been announced.

Expected Changes After 1.0

  • API stability guarantees
  • Clear LTS/EOL policy
  • Minimized breaking changes
  • Possible long-term support (LTS) versions

Check the latest roadmap at Official GitHub Issues and RFC Repository.

 

 

13. Official Resources and Community

Official Resources

Resource URL Purpose
Official Website ponylang.io General information
Tutorial ponylang.io/learn Learning
Playground playground.ponylang.io Browser testing
GitHub github.com/ponylang/ponyc Source code
Release Notes ponylang.io/categories/release Version information

Community and Support

Channel URL Purpose
Zulip Chat ponylang.zulipchat.com Real-time questions
GitHub Discussions GitHub Discussion
Pony Patterns patterns.ponylang.io Design patterns
Standard Library stdlib.ponylang.io API documentation

 

 

Conclusion

Pony uses a unique platform-based support policy instead of traditional LTS/EOL approaches. While the pre-1.0 status means rapid changes, the strong guarantees around concurrency safety and high performance make it compelling.

Key Takeaways:

  • Version Policy: Follows platform security support periods instead of traditional EOL
  • Current Latest: 0.60.4 (October 31, 2025)
  • Platform Support: Alpine 3.20-3.22, Ubuntu 22.04/24.04, Windows 11, macOS
  • Major Changes: Ubuntu 20.04 dropped, Alpine-only Docker, expanded arm64 support
  • Security: 0.58.10 soundness issue – immediate update required

If you’re dealing with complex concurrency problems, Pony’s unique approach might be the solution you need. However, carefully evaluate your team’s capabilities and project requirements before production adoption.

Keep track of platform support periods and regularly check release notes for safe Pony usage. 🙂

 

 

 

Leave a Reply