<rss xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title>Roadmap - 标签 - 星河拾贝录</title><link>https://blog.liubang.cc/tags/roadmap/</link><description>Roadmap - 标签 - 星河拾贝录</description><generator>Hugo -- gohugo.io</generator><language>zh-CN</language><managingEditor>it.liubang@gmail.com (liubang)</managingEditor><webMaster>it.liubang@gmail.com (liubang)</webMaster><copyright>Copyright © 2019-2026 LiuBang. All Rights Reserved.</copyright><lastBuildDate>Sat, 23 May 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://blog.liubang.cc/tags/roadmap/" rel="self" type="application/rss+xml"/><item><title>项目路线图：从可用到好用</title><link>https://blog.liubang.cc/flux/2026-05-23-flux-engine-12-roadmap/</link><pubDate>Sat, 23 May 2026 00:00:00 +0000</pubDate><author><name>liubang</name></author><guid>https://blog.liubang.cc/flux/2026-05-23-flux-engine-12-roadmap/</guid><description><![CDATA[<p>到目前为止，<code>cpp/pl/flux</code> 已经具备一个语言项目和查询引擎项目的基本骨架：能解析、能执行、能导入标准库、能跑表流查询、能接 SQLite/MySQL、能做部分 pushdown、能输出 explain/profile，也有 LSP 和 conformance tests。</p>
<p>接下来真正重要的问题不是“还能加什么功能”，而是“哪些功能能让它从可用走向好用”。</p>
<h2 id="当前已经稳定的主干" class="headerLink">
    <a href="#%e5%bd%93%e5%89%8d%e5%b7%b2%e7%bb%8f%e7%a8%b3%e5%ae%9a%e7%9a%84%e4%b8%bb%e5%b9%b2" class="header-mark"></a>当前已经稳定的主干</h2><p>语言前端方面，scanner/parser/AST 已经覆盖常见 Flux 查询语法。表达式优先级、函数、pipe、record、array、object、regex、datetime、duration、类型语法都有测试覆盖。</p>
<p>运行时方面，<code>Value</code>、<code>Environment</code>、expression evaluator、statement executor、function closure、pipe 参数、标准库 package 和 table pipeline 已经形成闭环。</p>
<p>查询执行方面，内存 <code>TableValue</code> 路径仍然可用；SQLite/MySQL connector 已经走 metadata/split/page source；optimizer 和 physical executor 主干已经存在；Page streaming、exchange、accumulator 和 profile 能覆盖越来越多真实查询。</p>
<p>工具链方面，CLI、REPL、AST dump、JSON/CSV/human 输出、LSP 和 conformance examples 都已经可用。</p>
<h2 id="路线图的排序原则" class="headerLink">
    <a href="#%e8%b7%af%e7%ba%bf%e5%9b%be%e7%9a%84%e6%8e%92%e5%ba%8f%e5%8e%9f%e5%88%99" class="header-mark"></a>路线图的排序原则</h2><p>后续路线不能只按“哪个功能酷”排序，而要看它是否强化主干。</p>
<p>优先级最高的是会被多个模块共享的基础能力，例如 analyzer/binder、类型诊断、metadata/statistics、Page execution profile、标准库 conformance。这些能力一旦补好，会同时改善 runtime、LSP、optimizer 和文档。</p>
<p>优先级较低的是孤立能力，例如临时加一个外部 IO package、支持某个少见语法糖、或者为一个 demo 写特殊 builtin。它们看起来能快速增加功能列表，但不一定提升项目整体质量。</p>
<h2 id="语言层路线图" class="headerLink">
    <a href="#%e8%af%ad%e8%a8%80%e5%b1%82%e8%b7%af%e7%ba%bf%e5%9b%be" class="header-mark"></a>语言层路线图</h2><p>最值得补的是语义分析和类型检查。当前很多错误要到 runtime 才暴露，例如参数类型不匹配、函数返回值不符合 builtin 预期、对象字段不存在等。</p>
<p>类型检查不一定要一开始追求完整 Hindley-Milner。更现实的方式是先做 binder：</p>
<ul>
<li>绑定 import、package、builtin、变量和函数。</li>
<li>给常见 builtin 建立参数/返回形状。</li>
<li>对明显错误给出诊断。</li>
<li>为 LSP hover/signatureHelp 提供类型信息。</li>
</ul>
<p>其次是 formatter。LSP 已经有 formatter 模块，但要达到日常可用，还需要更多真实文件快照和格式风格约束。</p>]]></description></item></channel></rss>