文档
面向用户的 SuperJ 操作指南。用 superj doc --list 和 superj doc <class-fqn> 在你的机器上浏览 SDK API。
一个自包含的页面演示这门语言:arena 内存模型、系统能力特性、从 Java 保留/移除的账本,以及性能数字。
SuperJ 是什么、为什么它是"super" Java(不是子集)、设计哲学、SDK 变体,以及第一次构建。到能跑的二进制最快的上手脚道。
Java → SuperJ 的差异点集中在一页可扫读的文档里:什么相同、什么移除、什么改变、什么新增,以及一份速查语法表。
一步步来:在内置协议栈上写一个 HTTP 服务器,编译成单一原生二进制,运行它,用 wrk 加压测试 — 然后用 SuperJ 自己的客户端打败 wrk。
受 Cargo 启发的构建工具(即自托管的 superj 本身):new/build/run/check/test、Build.sj 清单、路径与 git 依赖、workspace、profile、hook、feature flag。
sj.test 单元测试框架:@Test/@Ignore、Asserts 词汇表、superj test,以及 golden-output 套件。
为什么 SuperJ 没有线程、为什么这是正确而非局限,以及三个不可能性结论(死锁自由不可判定、FLP、CAP)如何让全序事件系统成为正确的原语。
为什么 SuperJ 没有借用检查器:它杜绝的那一类 bug 不值得付出永久的逐行负担,而确定性是更强的正确性属性。
为什么"没有 Rust crates"是没抓住重点:SuperJ 是一门 LLVM 语言,所以每个 LLVM 语言生态中已编译的 C-ABI 核心都能通过 native 免费链接。
用 sj.gpu 加载量化 GGUF 模型,四十行代码完成 prefill + decode,诚实地基准测试(GPU 预热陷阱),并下探到 Tensor 层实现自定义架构。
SuperJ 的原生 struct — 紧凑的小端布局,布局本身就是线格式,支持原始/嵌套/定长数组/enum 字段、变长 bytes/string,以及 view()/bindTo() 轻量视图模式。
Capabilities、架构规则与契约:声明每个包能做什么、能 import 什么、方法必须保证什么 — 由编译器强制执行,release 构建中零开销。
创建一个库包(没有 entry),通过路径或 git 依赖从另一个项目消费它,以及 workspace(monorepo)方案。
如何让无 GC 的进程保持平坦:单线程许可、分配阶梯、arena 块、local 栈分配、临时缓冲手册,以及用 memory-event log 验证平坦性。
用 --mem-track 和 superj memlog 追踪 arena 随时间的增长:按 arena 归因、泄漏判定、实时尾部,以及 debug 构建的逐类型直方图。
三条来之不易的风格规则:无 GC 编码(分配阶梯、警告 flag、审查清单)、优先用 switch 而非 if/else if、以及优先提前返回。
本站自己的安装并运行的 walkthrough — 从 clone 到一个能跑的 Web 服务器,七步走。内容与入门指南相同,面向首次访客。
完整的 SDK API 面 — 每个类、方法、签名 — 安装后一条命令即可。SDK_API.md 在打包时生成于 $SJ_HOME/sdk/build/。
superj doc --listsuperj doc sj.http.Routersuperj doc sj.util.IntArrayListsuperj --help