返回首页
最新
嗨,Hacker News,
我正在从零开始开发一个C编译器,目前在测试生成的抽象语法树(AST)和汇编输出方面遇到了一些困难。我特别难以找到适合一个人项目且实用的解决方案。
我对Clang进行了一些研究,发现他们使用了一个自定义的Filecheck库。这对于一个生产级编译器来说非常出色,但对于我的项目,我不确定是否值得投入所有的精力(尤其是因为我的主语言F#没有Filecheck库,我需要重新创建一个)。
AST也是同样的情况——我能想到的最好方法就是在我的主代码语言中创建节点。这显得有些冗长。
你们是如何测试和检查编译器输出的?有没有什么好的推荐给我?我乐意进行研究或阅读任何相关内容。请记住,我希望努力与回报之间达到一个良好的平衡。
我刚刚构建了 Restring —— 一个快速、现代的工具箱,专为日常开发任务而设计,比如格式化 JSON、解码 JWT 和转换字符串。
我知道市面上有很多类似的工具,但我想要一个感觉瞬时且智能的工具。
- 快速:使用 SvelteKit 和纯 HTML/CSS 构建,依赖项极少,没有冗余的用户界面。整个网站压缩后不到 300 KB,感觉非常流畅。
- 智能:它会尝试自动检测你粘贴的内容(如 JSON、JWT 或 Base64),并自动引导你到正确的工具。
目前支持:
Base64、JSON、JWT、URL、颜色和日期时间。
我之前使用过 React、Vue 和 Flutter,但用 SvelteKit 构建这个工具的过程非常愉快——直观、简洁,且运行良好。
欢迎反馈,特别是关于自动检测逻辑的意见以及其他工具的添加建议。
我对实时人机交互一直很感兴趣。这个项目是一个原型闭环绘图系统,类似于绘图的“视觉自动补全”。其理念是用户可以与AI一起绘画,而无需通过手动文本提示来打断创作流程。
该系统通过AI持续观察并响应画布上的实时绘图来工作。一个视觉模型(使用Ollama)对所见内容进行解读,这一描述驱动实时图像生成(StreamDiffusion)。
为了实现实时性能,这个项目使用C++和Python构建,利用GPU进行基于Spout的纹理共享,且开销最小。
可重用的组件包括:
- StreamDiffusionSpoutServer:一个轻量级的Python服务器,用于与StreamDiffusion进行实时图像生成。设计用于与任何兼容Spout的软件接口,并使用OSC进行指令传递。
- OllamaClient:一个最小化的C++库,用于与Ollama视觉语言模型进行接口。包括openFrameworks和Cinder的实现。
“视觉自动补全”这一概念在最近的论文中得到了探讨(例如,arxiv.org/abs/2508.19254,arxiv.org/abs/2411.17673)。
希望这些开源组件能够帮助加速其他人在这一方向上的实验和进展!
个人而言,我认为 JJ VCS(<a href="https://github.com/jj-vcs/jj" rel="nofollow">https://github.com/jj-vcs/jj</a>)在过去一年中的某个时刻达到了一个节点,让我很难找到继续使用 `git` 的充分理由。多年来,我拼凑了许多别名和 Bash 函数,以改善我的 `git` 工作流程,但在使用了 `jj` 之后,它可以与几乎任何 git 仓库兼容,并且与 Github 仓库的集成非常出色,我在使用 git 时遇到的所有工作流程问题不仅得到了解决,而且以我用简单脚本无法实现的方式得到了改善。
一个例子是 `op log`,它允许你回到仓库的任意时间点,并在你想要撤销合并、无意中进行了变基等操作时提供简单的 `undo` 和 `redo` 命令。
因为我坚信 JJ 目前是一个更干净、更强大的 `git` 版本,我希望它能够继续发展。与此同时,似乎缺少一个功能齐全的 GUI 来支持这个 VCS。虽然有一些插件可以与 VS Code 集成,还有一个正在开发中的插件以支持 Intellij,但我认为 JJ 提供的许多构造需要从头开始构建一个围绕 JJ 工作方式的 GUI。
目前,Judo for JJ 是一个处于开放测试阶段的 MVP。我尽力支持所有核心功能,尽管还有许多附加功能我会添加,比如原生合并支持、原生拆分等。这些大部分将基于 Beta 期间的反馈。
我非常感激 JJ 所建立的优秀社区,以及多年来我在 HN 社区中阅读的无数基于 VCS 的帖子,并希望在 Beta 期间能够获得大量真实使用的反馈——目标是成为一个功能齐全的桌面 GUI,类似于许多优秀的 git 产品。