尤克特拉希尔(Yggdrasil)是一种新的、实验性的路由方案,旨在成为当前互联网协议的去中心化和面向未来的替代方案。它设计用于可扩展性和弹性,能够创建自愈的、点对点网络,处理大型、复杂的拓扑结构——甚至互联网规模的网状网络。
一个关键特性是对所有流量进行全程端到端加密。目前,它被实现为轻量级的软件路由器,支持通过各种连接(局域网上的TCP/TLS、点对点或互联网)进行IPv6路由,甚至可以桥接IPv4和IPv6网络。
尽管仍处于alpha阶段且可能发生变化,但尤克特拉希尔的出乎意料地稳定,并且已被不断壮大的社区用于测试和实际应用。它适用于多个平台,包括Linux、macOS、Windows、iOS和Android,并鼓励用户通过安装和配置软件加入网络。
Tailscale 最近解决了在一些 MacBook(特别是 2021 款带刘海屏的型号)上,其菜单栏图标因空间有限而消失在屏幕刘海中的问题。苹果没有提供直接的解决方案,导致用户无法在没有第三方应用等变通方法的情况下访问设置。
最初,Tailscale 实施了一个临时修复方案:弹出通知,提醒用户图标已隐藏,利用其可见性数据。虽然不完美,但有助于诊断问题。
核心解决方案现已通过 Tailscale 的新窗口化 macOS 应用(版本 1.96.2 及更高版本)提供。该应用与菜单栏版本并行运行,提供可搜索的设备列表、简便的文件共享、出口节点访问、错误通知以及最小化的“迷你播放器”模式。窗口化界面旨在使 Tailscale 更易于访问和使用,减少对可能隐藏的菜单栏图标的依赖。Tailscale 也在计划为 Windows 开发类似的 UI。
## 优先类型推断以提供更清晰的错误信息
许多具有强类型推断的语言可能会产生令人困惑的错误信息,因为编译器对类型的假设并不总是与开发者的意图一致。 本提案介绍了一种新的类型推断算法,旨在优先考虑基于开发者*可能*思考代码方式的类型统一,而不是简单地遵循源代码的顺序。
核心思想是摆脱单次自上而下的推断过程,而是利用一系列有序的推断过程——优先考虑“已知应用”(具有预期类型的函数参数)和“已知赋值”,然后再进行不太确定的推断。 这种方法旨在通过反映开发者的心理模型来解决类型歧义。
该算法迭代地完善类型,在每个步骤之后重新运行早期推断过程,以利用新信息。 错误生成被推迟到最终类型检查阶段,确保消息反映了优先的推断。 基准测试显示出有希望的性能,尤其是在具有许多小函数的语言中,这使其成为改善开发者体验的可行方法。