返回首页
最新
嗨,HN,
我一直在寻找一种在 Neovim 中以统一/ GitHub 风格查看差异的方法,但没有找到令人满意的解决方案。有几个插件部分解决了这个问题,比如 vgit.nvim,但它们都缺少我所需要的一些功能,因此我自己构建了 unified.nvim。
这个功能非常基础。你只需使用 :Unified 命令,后面跟上一个提交引用作为第一个参数(例如,HEAD)。左侧会打开一个树状窗口,列出所有已更改的文件,导航树状结构会自动在缓冲区中打开该文件。这只是一个普通的缓冲区,带有高亮和虚拟行。你可以对其进行修改,差异会相应更新,同时你的正常 LSP 跳转到定义等功能也会正常工作,类似于 diffview。实际上,我从 diffview 及其用户界面中获得了很多灵感(但没有使用其代码)。之所以这个功能无法作为 diffview 的一部分,是因为 diffview 依赖于内置的 Neovim 差异比较功能。
我开发了一个自定义的GPU内核,能够每秒处理超过4000万次并行代理操作,同时在多次运行中保持明显的确定性结果——这在GPU并行处理领域通常被认为是不可能的。
性能演示: [https://youtu.be/Y3Jg8RCZ65c](https://youtu.be/Y3Jg8RCZ65c)
确定性证明: [https://youtu.be/fk7NMNGcfSY](https://youtu.be/fk7NMNGcfSY)
整个运行时小于10MB。欢迎讨论潜在的应用!
联系方式: autoscriptlabs@gmail.com
以下是协议工作流程。我们定义 g 为阶数为 q 的乘法循环群 G 的生成元。我们定义 p = 2q + 1(一个安全素数)。值 p、g、a1、b1、c1 对于证明者和验证者都是公开的。a1 = g^a mod q,b1 = g^b mod q,c1 = g^ab mod q,其中 a 和 b 是加密安全的随机生成数。证明者希望证明他知道一个秘密 x。证明者计算 y1 = g^x mod q 和 y2 = b1^x mod q。证明者将 y1 和 y2 发送给验证者。验证者随后计算一个挑战值 s,并将其发送给证明者。证明者接着计算 z = (x + as) mod q。证明者将 z 发送给验证者。验证者然后进行两个检查:g^z mod q = a1^s * y1 mod q 和 b1^z mod q = c1^s * y2 mod q。如果检查通过,则意味着证明者确实证明了他知道 x。可以数学上证明,这些检查仅在证明者知道一个有效的 x 时才为真。
Liven Beta 构建了您代码库的依赖关系图——包括函数、类以及跨文件和文件夹的关系,并立即在终端中显示出来。可以将其视为开发者和大型语言模型(LLMs)的上下文引擎。