Skip to content

v0.2.0-beta.8

Choose a tag to compare

@KingBes KingBes released this 30 Jul 15:34
· 48 commits to main since this release
5178041

🎉 New Features

异步与协程通信库 (Channel / Future / chan_select)

参考 vlang CSP 模型设计的异步通信原语,采用 tphp OOP 思想:

  • Channel — CSP 风格有界通道,环形缓冲区实现(push/pop 零 malloc),阻塞前自旋 750 次减少 syscall。9 个方法
  • Future — 一次性异步结果传递,支持 await/then/catch 链式调用 + all/race 组合器。10 个方法
  • chan_select — 多通道多路复用,支持超时机制
  • 内存安全:push 时 retain,close 时遍历释放,dtor 保证不泄漏
  • 新增 ChannelClosedException / FutureRejectedException 异常类型

ext/pgsql + ext/pdo_pgsql

PostgreSQL 扩展(纯 C 协议实现,支持 trust/md5/SCRAM-SHA-256 认证):

  • 78 个 pg_* 函数(连接/查询/预处理/结果集/COPY/DML/Large Object/持久连接/通知回调)
  • ~60 个常量
  • 参考 vlang Pool+IdleSlot 模式实现 pg_pconnect 持久连接池
  • pdo_pgsql 驱动复用 ext/pgsql 协议实现

🐛 Bug Fixes

  • fix(ci): 修复 TCC on macOS 定义 __GNUC__ 导致误命中 GCC __atomic_* 内建,283 个测试全部编译失败
  • fix(pdo_pgsql): 修复 c_int() 截断 64 位 dbh 指针导致多平台段错误
  • fix(pgsql): 修复 notice 回调段错误 + TypeChecker 常量 null type 警告
  • fix(ext): pgsql/pdo_pgsql 改用 phpc 正确前缀 + 修复常量引用类型推导
  • fix(ci): Windows PostgreSQL 改用 EnterpriseDB binaries ZIP 包手动安装

Full Changelog: v0.2.0-beta.7...v0.2.0-beta.8

What's Changed

Full Changelog: v0.2.0-beta.7...v0.2.0-beta.8