返回首页
最新
你好,我是埃德加!我们正在开源 nix-ninja,这是一个针对 Nix 的增量构建系统,利用动态派生功能。
对于不熟悉的人来说,Nix 是一个强大的包管理器和构建系统,通过严格的依赖隔离确保可重现的构建。然而,它的一个局限性是将包作为整体单元进行构建——如果你更改了一个源文件,Nix 会从头开始重建整个包。
nix-ninja 通过为 Nix 构建引入编译单元级别的细粒度控制来解决这个问题。它针对 ninja 构建文件,这是一种描述构建图的格式,输出自流行的构建系统,如 CMake 和 meson。这意味着当你修改一个源文件时,仅需重建受影响的编译单元,从而显著减少构建时间。
我们对此感到兴奋,因为这为 Nix 提供了细粒度的缓存和提前截止优化(请参见《Build Systems à la Carte》论文)。结合像 Nixbuild.net 这样的远程构建农场,这使得 Nix 进入了增量云构建系统的领域,与谷歌的 Bazel 和 Meta 的 Buck2 并肩而立。
动态派生和内容寻址派生在 Nix 中仍然是实验性功能,因此我们希望通过提供一个引人注目的用例和实现来加速它们的成熟。我们的目标是让 Hydra(nixpkgs 的 CI 运行器)支持在 nixpkgs 中进行增量编译,以应对像 LLVM 这样的慢构建。
nix-ninja 今天可以编译 Nix 本身,但我们仍处于开发的早期阶段。鉴于社区对 Nix 中动态派生和增量编译的兴趣,我们决定在预发布状态下开源它,以便让社区参与其设计。
请查看一下。我们将在评论区回答任何问题:<a href="https://github.com/pdtpartners/nix-ninja" rel="nofollow">https://github.com/pdtpartners/nix-ninja</a>
我已经使用 Cursor、Co-Pilot、ChatGPT、Claude 等工具有一段时间了,现在我们可以通过几个提示“随意编码”整个应用,从构想到执行。<p>我个人尝试过创建一些解决我小问题的副项目,但总是卡在某个点上,陷入无尽的问题循环,无法自行解决。<p>作为一名开发者,我可以更容易地深入代码,自己解决问题,但理解 AI 为我编写的所有代码需要花费大量时间。如果我想继续“随意编码”,我会给它发送我当前网页视图的截图,以及控制台日志,甚至是与某些 API 连接时的网络请求。<p>但即便如此,这也需要相当多的手动努力和时间,因此我决定为自己解决这个问题,创建了 Composer Web(https://github.com/saketsarin/composer-web)。<p>它通过一键将所有日志、请求和网页截图直接发送到你的 Cursor 聊天中,解决了这个问题,且用时不到一秒。<p>我将其开源,反响相当不错。因此,我希望找到一些人来帮助我维护并进一步开发,以支持更多用例,比如 iOS 模拟器日志、AWS 云控制台日志,甚至扩展支持其他开源 IDE,如 Cline、Aider 等。<p>我也欢迎你们对我提出任何反馈和建议。所以请随时在这里评论,或在 GitHub 仓库提供的 Discord 上联系我。<p>希望这能让你的随意编码过程更加轻松、无忧 :D
我开发了一个博客链接编辑器,您可以在这里试用:<a href="https://lighthouseapp.io/tools/blogroll-editor" rel="nofollow">https://lighthouseapp.io/tools/blogroll-editor</a>
基本的想法是,您可以创建一个博客和新闻通讯的列表(通过电子邮件转RSS),然后将其导出为OPML文件,您或其他人可以在自己喜欢的阅读器中导入这个列表。
最近我发现越来越多的人在他们的网站或博客上发布博客链接,但如果我想添加这些链接,就必须一个一个地手动添加。OPML文件已经被用于导出阅读器的内容,但为什么不也用它们来分享博客呢?这就是我开发这个工具的原因,旨在简化博客列表的分享过程。
我希望这对您也有价值。当然,任何反馈或评论都非常欢迎!