C++26 引入了 `std::is_within_lifetime`,这是一个 `consteval` 函数,旨在确定指针是否在*编译时*指向当前在其生命周期内的对象。虽然看似小众,但它解决了关键问题:安全地检查联合体内的活动成员。
传统上,确定联合体的哪个成员处于活动状态一直存在问题,尤其是在常量求值期间,直接访问非活动成员会导致未定义行为。`std::is_within_lifetime` 提供了一个标准解决方案。
该函数接受一个指针(以避免引用带来的生命周期扩展问题),并且有意设计为通用名称,预计用途不仅仅是联合体——可能有助于其他编译时对象生命周期检查。它的最初动力源于需要实现一种空间高效的 `Optional<bool>` 类型,允许在编译时确定值是否存在,而无需运行时开销。
目前,主流编译器缺乏对这个 C++26 功能的支持,但它代表了增强 `constexpr` 求值的实用性和表达能力的一个有价值的补充。
## 中世纪艺术中的独角兽与圣母玛利亚
英语教授麦琪·索尔伯格在研究中世纪晚期文学中圣母玛利亚的描绘时,发现了一个有趣的联系:玛利亚经常与独角兽一起出现。这种意象源于中世纪的“动物寓言书”——描述神话生物的插图文本,其中独角兽是强大的、危险的生物,只能被处女捕捉。
传说中,人们会引诱独角兽到一位处女身边,让它将头放在她的腿上,以便猎人杀死它以获取其药用特性。索尔伯格认为,这并非关于现代意义上的纯洁,而是关于“效能”——为受孕做好准备。这把独角兽与处女联系起来,在父权社会中,处女被视为血统的保证。
在基督教寓言中,独角兽代表基督,玛利亚代表处女,猎人则代表大天使或亚当和夏娃。独角兽的被捕和死亡反映了基督的化身和受难,它的身体象征着圣餐。索尔伯格强调,中世纪的解读将玛利亚描绘成一个积极主动,甚至具有诱惑力的形象,她*欢迎*基督,这与后来将她视为被动容器的观点形成了鲜明对比。这重新塑造了玛利亚的形象,让她成为一个积极参与人类救赎的英雄。
## Pebble 更新:硬件与软件进展 - 2024 年 2 月
Pebble 正在准备发货三款新产品:Pebble Time 2、Pebble Round 2 和 Index 01。生产过程复杂,需要在成本、质量和速度之间取得平衡,并且经常需要进行最后的调整。
**Pebble Time 2** 处于最终的生产验证测试 (PVT) 阶段,计划于 3 月 9 日开始量产,预计初期交付在 4 月初。预订订单将在 6 月初发货。它防水达 30 米(3ATM)——适合游泳(不适合热水浴缸),并且将在发货前几周发送包含税费/关税详情的订单确认函。
**Index 01** 也处于 PVT 阶段,目标是 3 月开始生产。它防水达 1 米(IPX8)。计划推出 10 美元的戒指尺寸套件,Pebble 正在评估对 14 码和 15 码尺寸的需求。
**Pebble Round 2** 已完成初步设计阶段,并将专注于防水测试,预计生产将于 5 月底开始。
重要的软件更新也在进行中,包括修复错误、改进天气功能、支持 Android 上的 WhatsApp 呼叫,以及在移动应用程序内改进 Pebble 应用商店。Pebble 还在努力恢复旧应用程序并改进开发者工具。
## Lilush:一个自包含的LuaJIT运行时环境与Shell
Lilush是一个非常紧凑(小于3MB)且自给自足的LuaJIT运行时环境,专为Linux环境设计。它是一个单独的二进制文件,没有外部依赖,非常适合Docker容器、busybox替代品以及在x86_64 Linux系统上的部署。
除了LuaJIT解释器之外,Lilush还包含用于网络(TCP/UDP,带有WolfSSL的HTTP(S))、密码学、文件系统访问以及具有UTF-8支持和通过TSS进行样式的终端UI的内置模块。它还具有Markdown处理、Redis支持以及嵌入式WireGuard/ACMEv2客户端等工具。
值得注意的是,Lilush *也* 充当一个功能齐全的shell,具有智能提示符、选项卡补全以及内置实用程序,如`kat`、`ktl`、`netstat`和`dig`。它可以通过插件扩展,并可通过TSS进行自定义,需要一个Kitty兼容的终端模拟器。
Lilush的目标是成为“下一个小东西”——一个强大、可移植且无依赖性的脚本和系统管理工具。