标签
C++26 引入了新的 <debugging> 头文件,提供 std::breakpoint()、std::is_debugger_present() 和 std::breakpoint_if_debugging(),通过提案 P2546R5 和 P2810R4 实现标准化,以取代平台特定的调试宏。
Raymond Chen 解释 C++ std::async 的心智模型,说明 launch 策略的两个维度(立即/延迟、同线程/新线程)中哪些组合是标准允许的,哪些被禁止或由实现决定。
一篇 Raymond Chen 的 C++ futures 系列后续博客文章,阐释了 `std::promise` 和 `std::packaged_task` 背后的心智模型,展示了共享的 "source" 状态如何通过 `shared_ptr` 进行管理,以及 `packaged_task` 如何包装一个 promise 来存储调用结果,以便通过 future 进行检索。
Vincent Bernat 探讨了在 Go 的 netip.Addr 中如何高效地将 IPv4 地址映射为 IPv6,比较了标准库新增方法、unsafe 辅助函数,以及改造 Go 编译器来优化维护者偏好的 netip.AddrFrom16(ip.As16()) 模式三种方案。
Go 1.27 在标准库中引入了 `encoding/json/v2`,并悄悄在它之上重新实现了旧的 `encoding/json` 包,从而改变了错误信息字符串,并调整了默认行为:nil 切片变为 `[]`、字段匹配改为大小写敏感、拒绝重复的 key,以及在直接导入 v2 时 `time.Duration` 不再进行序列化。
Rust 团队宣布推出 Rust 1.99.0,稳定了 C-ABI 可变参数函数、基于原始指针的布局信息 API,并在自定义分配器支持到来之前更新了关于 Box::leak 用法的指导建议。
本文比较了 C++ 并发机制中的异常处理行为:magic statics、std::call_once 和 std::async,解释了它们的差异并提供了使用建议。
本文比较了 C++ 中用于延迟执行的 std::call_once 和 std::async,讨论了它们在实现、性能和异常行为方面的差异。
Python 3.15 软弃用 re.match() 函数,引入 re.prefixmatch() 作为字符串开头模式匹配的更清晰替代方案。
这篇文章对 Go 1.27 中的新 JSON API 进行了基准测试,显示在反序列化方面速度显著提升,但在序列化方面与旧实现相比结果不一。
作者为Rust的fearless_simd库实现了一个向量化FMA,从而提高了性能,并发现了Rust和musl libc标准库中的错误。
本文批判了 Rust 的 RangeFrom 迭代器设计,突出了溢出处理和意外行为可能导致无限循环或崩溃的问题。
Zig 的开发日志介绍了 ArrayLists 的指针稳定性,以防止在重新分配过程中因指针失效而导致的内存安全错误。
本文详细阐述了 Go 的 sync.Map 从普通映射到哈希字典树实现的演变过程,介绍了 Go 1.24 和 1.26 版本中的变化,并逐步解析了其 API 与内部机制。
Go 1.27 已发布,包含重大增强,如泛型方法、性能改进以及新标准库特性,例如 encoding/json/v2 和后量子密码学支持。
Rust 标准库现在使用 `cargo-semver-checks` 来防止意外破坏,通过过往事件和集成该工具的协作努力详细说明。
Writergate 是 Zig 输入/输出接口重构的非正式名称,它用具体类型和虚表替换泛型类型,以解决设计缺陷并实现异步输入/输出等功能。这些更改是破坏性的,需要更新现有代码。
C++26 引入了 std::indirect,这是一个词汇类型,为堆分配对象提供值语义和常量传播,是类成员中比 std::unique_ptr 更安全的替代方案。