|
1 | 1 | # Changelog |
2 | 2 |
|
3 | | -All notable changes to this project will be documented in this file. |
4 | | - |
5 | | -The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). |
6 | | - |
7 | | -## [1.0.0] - 2025-10-31 |
8 | | - |
9 | | -Production-ready release with comprehensive stress testing and validated performance. |
10 | | - |
11 | | -### Added |
12 | | -- Lock-free SPSC channels with backpressure support |
13 | | -- Structured concurrency with TaskGroup |
14 | | -- Work-stealing scheduler with NUMA awareness |
15 | | -- Connection pool with starvation detection and auto-recovery |
16 | | -- WebSocket stress testing (1,000+ clients, 1M+ messages) |
17 | | -- Streaming pipeline with adaptive backpressure |
18 | | -- Comprehensive fault tolerance and error isolation |
19 | | -- 24-hour endurance testing suite |
20 | | -- Integrated observability with metrics and tracing |
21 | | -- Full CI/CD pipeline with automated validation |
| 3 | +## [0.2.1] - 2025-11-01 |
22 | 4 |
|
23 | 5 | ### Fixed |
24 | | -- Stack overflow in mixed workload scenarios |
25 | | -- Race condition in memory allocation tracking |
26 | | -- Channel buffer overflow handling |
27 | | -- Database connection leak prevention |
28 | | - |
29 | | -### Performance |
30 | | -- **SPSC Throughput**: 213M+ ops/sec |
31 | | -- **Task Spawn**: < 100ns overhead |
32 | | -- **Mixed Workload**: 8,400 tasks/sec sustained |
33 | | -- **GC Pauses**: < 2ms at 1GB allocation pressure |
34 | | -- **Memory Stability**: Zero leaks after 24h continuous operation |
35 | | - |
36 | | -### Testing |
37 | | -- Comprehensive unit test coverage |
38 | | -- Integration testing across all modules |
39 | | -- Performance benchmarking and regression testing |
40 | | -- Stress testing under extreme conditions |
41 | | -- 24-hour endurance validation |
42 | | - |
43 | | -## [0.1.0] - 2025-10-31 |
44 | | - |
45 | | -Production-ready lock-free SPSC channels with industry-leading performance. |
| 6 | +- **Async channels now actually work** - Previous implementation was completely broken |
| 7 | + - Fixed `send()`/`recv()` to use actual SPSC implementation (was referencing non-existent fields) |
| 8 | + - Removed duplicate Channel/ChannelMode type definitions |
| 9 | + - Added exponential backoff (1ms → 100ms) to reduce CPU usage |
| 10 | + - Fixed Chronos deprecation warnings |
| 11 | +- **Deduplicated channels.nim** - Removed 100+ lines of duplicate code |
| 12 | + - Now properly imports from channel_spsc instead of reimplementing everything |
46 | 13 |
|
47 | 14 | ### Added |
| 15 | +- Comprehensive async channel tests (tests/unit/test_async_channel.nim) |
| 16 | +- Added async tests to CI workflow |
48 | 17 |
|
49 | | -- **Lock-Free SPSC Channels** - 213M+ ops/sec single-threaded throughput |
50 | | -- **ORC Memory Management** - Zero GC pressure in hot paths |
51 | | -- **Atomic Operations** - Thread-safe with proper memory barriers |
52 | | -- **Production API** - `newChannel`, `trySend`, `tryReceive` |
53 | | -- **Performance Benchmarks** - Validated against 52M ops/sec target (410% achieved) |
54 | | -- **Unit Tests** - Basic functionality validation |
55 | | -- **CI/CD Pipeline** - Automated testing on GitHub Actions |
56 | | -- **Documentation** - Performance-focused README and architecture guide |
57 | | - |
58 | | -### Performance Achievements |
| 18 | +### Changed |
| 19 | +- Updated KNOWN_ISSUES.md to reflect async improvements |
59 | 20 |
|
60 | | -- **213,567,459 ops/sec** - 4.1x above 52M target |
61 | | -- **<1KB memory per channel** - Efficient resource usage |
62 | | -- **Sub-microsecond latency** - For uncontended operations |
63 | | -- **ORC-safe** - Advanced Nim garbage collection |
64 | | -- **Lock-free** - No locks, no blocking, no deadlocks |
| 21 | +## [0.2.0] - 2025-11-01 |
65 | 22 |
|
66 | | -### Technical Details |
| 23 | +### Reality Check Release |
| 24 | +Downgraded from v1.0.0 to v0.2.0 to accurately reflect what's production-ready. |
67 | 25 |
|
68 | | -- **Algorithm**: Atomic sequence numbers with acquire/release semantics |
69 | | -- **Memory Layout**: Cache-aligned SPSCSlot structures |
70 | | -- **Threading Model**: Single producer, single consumer |
71 | | -- **Safety**: ORC GC with zero allocations in hot path |
72 | | -- **Compatibility**: Nim 2.0+ with ORC memory management |
| 26 | +### Production-Ready |
| 27 | +- **SPSC Channels**: 212M+ ops/sec verified |
| 28 | + - Tests passing: tests/unit/test_channel.nim |
| 29 | + - Benchmark verified: tests/performance/benchmark_spsc.nim |
73 | 30 |
|
74 | | -### Breaking Changes |
| 31 | +### Removed from Public API |
| 32 | +- TaskGroup (has bugs, removed from exports) |
| 33 | +- Cancellation (untested, removed from exports) |
| 34 | +- All other features remain internal/experimental |
75 | 35 |
|
76 | | -- Initial release - no breaking changes |
77 | | - |
78 | | -### Known Limitations |
79 | | - |
80 | | -- Select operations not yet implemented (planned for v0.2.0) |
81 | | -- MPMC channels not yet implemented (planned for v0.2.0) |
82 | | -- Structured concurrency not yet implemented (planned for v0.3.0) |
83 | | - |
84 | | -- SPSC Channels: 50M+ ops/sec (world-leading performance) |
85 | | -- MPMC Channels: 10M+ ops/sec (optimized for concurrency) |
86 | | -- Task Groups: 500K+ tasks/sec spawn rate |
87 | | -- Cancellation: 100K+ ops/sec with <10ns latency |
88 | | -- Memory Efficiency: <1KB per channel overhead |
89 | | - |
90 | | -### Infrastructure |
91 | | - |
92 | | -- Complete test suite with performance, stress, and regression tests |
93 | | -- Professional benchmarking framework |
94 | | -- Comprehensive metrics and logging |
95 | | -- Production-ready validation tools |
96 | | -- Multi-platform performance validation |
97 | | - |
98 | | -## [0.2.0] - 2025-10-28 |
99 | | - |
100 | | -Production-ready release with 6 advanced modules for enterprise-grade async programming. |
| 36 | +### Changed |
| 37 | +- Version: 1.0.0 → 0.2.0 |
| 38 | +- README.md: Replaced with honest version |
| 39 | +- Build: "production" → "experimental" |
101 | 40 |
|
102 | 41 | ### Added |
103 | | - |
104 | | -- **Adaptive Work-Stealing Scheduler** - Modern task distribution with load balancing |
105 | | -- **NUMA-Aware Optimizations** - Multi-socket performance improvements |
106 | | -- **OpenTelemetry Distributed Tracing** - Production observability |
107 | | -- **Adaptive Backpressure Flow Control** - Smart rate limiting |
108 | | -- **Erlang-Style Supervision Trees** - Fault tolerance and recovery |
109 | | -- **Real-Time Performance Metrics** - Monitoring and analytics |
110 | | - |
111 | | -### Infrastructure |
112 | | - |
113 | | -- Multi-platform CI/CD (Ubuntu, macOS, Windows) |
114 | | -- Complete test coverage and benchmarks |
115 | | -- Community contribution templates |
116 | | -- Professional GitHub setup |
| 42 | +- STATUS.md: Feature audit |
| 43 | +- CI workflow: Test + benchmark validation |
| 44 | +- CHANGELOG.md: This file |
| 45 | +- KNOWN_ISSUES.md: Documented bugs and limitations |
| 46 | + |
| 47 | +### Known Issues |
| 48 | +- Async send/recv use polling (exponential backoff) |
| 49 | +- TaskGroup: nested async macro bugs (not exported) |
| 50 | +- Actors: won't compile, needs MPSC |
| 51 | +- Streams: compiles but untested |
| 52 | +- Scheduler: fake (just metrics) |
| 53 | +- NUMA: broken node detection |
| 54 | + |
| 55 | +See KNOWN_ISSUES.md for complete list. |
| 56 | + |
| 57 | +## [1.0.0] - RETRACTED |
| 58 | +Premature release. Use v0.2.0 instead. |
| 59 | + |
| 60 | +Retracted because: |
| 61 | +- Claimed features that don't work |
| 62 | +- TaskGroup exported but broken |
| 63 | +- Examples showed inaccessible API |
| 64 | +- No CI validation |
0 commit comments