<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[no1coder的博客]]></title><description><![CDATA[]]></description><link>https://blog.csdn.net/no1coder</link><language>zh-cn</language><generator>https://blog.csdn.net/</generator><copyright><![CDATA[Copyright &copy; no1coder]]></copyright><item><title><![CDATA[Rust 的生命周期不是分布式租约：Agent 状态安全的四个边界]]></title><link>https://blog.csdn.net/no1coder/article/details/169465853</link><guid>https://blog.csdn.net/no1coder/article/details/169465853</guid><author>no1coder</author><pubDate>Thu, 29 Oct 2026 22:26:04 +0800</pubDate><description><![CDATA[借用的生命周期是编译器对引用可用范围的约束；租约是运行系统在时间和故障条件下授予的权利。它们都谈“多久”，但含义不同。把两者叫作同构，既没有给出严格映射，也容易让读者误以为编译器替远端协议背书。2026-10-07的强调工具执行边界与模型执行是不同关注点。这可以作为Agent工程背景，不能据此推导所有状态问题都已解决。访问日2026-10-24。]]></description><category></category></item><item><title><![CDATA[Wasm 冷启动从哪里计时？先拆开下载、编译和实例化]]></title><link>https://blog.csdn.net/no1coder/article/details/169465805</link><guid>https://blog.csdn.net/no1coder/article/details/169465805</guid><author>no1coder</author><pubDate>Thu, 29 Oct 2026 22:24:33 +0800</pubDate><description><![CDATA[同一份Wasm，在新进程里首次运行，和复用Engine后新建一个实例，测到的不是同一种启动。如果一边计入编译，另一边拿预编译产物直接实例化，最后的微秒表再整齐也没有公平含义。于2026-10-20发布，适合作为固定实验对象。说明了预编译、池、COW和InstancePre等机制；不把滚动示例当成已在固定版本跑通的代码。]]></description><category></category></item><item><title><![CDATA[把 64 字节对齐改回来之前，先看这条 AVX 加载要求]]></title><link>https://blog.csdn.net/no1coder/article/details/169465759</link><guid>https://blog.csdn.net/no1coder/article/details/169465759</guid><author>no1coder</author><pubDate>Thu, 29 Oct 2026 22:22:53 +0800</pubDate><description><![CDATA[AVX加载必须64字节对齐”这句话太宽了。对哪一条指令、哪种宽度、哪个地址？如果连要求都写错，后面的缓存调优就会把正确性和性能混成一件事。明确要求32字节边界，并要求相应AVX目标特性。256位是32字节；这条对齐加载的条件不是64字节。文档事实不等于本机执行结果。]]></description><category></category></item><item><title><![CDATA[先别叫开源复盘：给 llama.cpp 的 Rust 封装做一张契约清单]]></title><link>https://blog.csdn.net/no1coder/article/details/169465721</link><guid>https://blog.csdn.net/no1coder/article/details/169465721</guid><author>no1coder</author><pubDate>Thu, 29 Oct 2026 22:21:31 +0800</pubDate><description><![CDATA[一份extern声明加一个Drop，还不能证明绑定库是安全的。我现在更愿意先写契约表：声明来自哪个头文件，返回的指针归谁，什么操作会让它失效，哪些调用允许并发。没有公开仓库、tag和验证记录，就不把学习片段叫作开源项目战绩。2026-10-15的修复了特定x86_64 FFI bool返回问题，提醒我同时核对语言类型和目标ABI。这里不复述该回归实验，重点放在绑定的证据链。]]></description><category></category></item><item><title><![CDATA[10 月手账先核账：255 份稿件，不等于 255 次可复现实验]]></title><link>https://blog.csdn.net/no1coder/article/details/169465668</link><guid>https://blog.csdn.net/no1coder/article/details/169465668</guid><author>no1coder</author><pubDate>Thu, 29 Oct 2026 22:19:45 +0800</pubDate><description><![CDATA[如果把目录里的稿件数量写成“完成多少个项目”，我会先把自己的手账退回来。文件存在、示例能编译、运行有日志、文章已发布，是不同状态。技术学习需要进度，但进度应该对应能检查的东西。本轮对陈一铭账号10月目录的本地核对，共有255份Markdown稿件：1–20日每天10篇，21–31日每天5篇。这是工作区稿件数量，包含尚未到来的排期，不是255篇已发布文章，更不是255次实验或个人手写代码量。]]></description><category></category></item><item><title><![CDATA[Wasm 内存涨了，先别在分配器回调里塞 HashMap]]></title><link>https://blog.csdn.net/no1coder/article/details/169337613</link><guid>https://blog.csdn.net/no1coder/article/details/169337613</guid><author>no1coder</author><pubDate>Wed, 28 Oct 2026 09:19:57 +0800</pubDate><description><![CDATA[想记录每次分配的地址和大小，就在alloc回调里向HashMap插一条记录——这个念头看起来直接，却可能让记录动作自己再次分配内存，形成递归。打印日志、格式化字符串、争抢锁，也可能在这个敏感位置引入新问题。展示了池和映射相关策略。Wasm线性内存、宿主缓冲、运行时池与系统分配器不是同一份账；把进程全部分配都归到某个guest，会把正常缓存也写成泄漏。资料于2026-10-23访问。]]></description><category></category></item><item><title><![CDATA[Agent 等 GPU 时还占着仓库锁，Rust 怎么帮忙查出来？]]></title><link>https://blog.csdn.net/no1coder/article/details/169337521</link><guid>https://blog.csdn.net/no1coder/article/details/169337521</guid><author>no1coder</author><pubDate>Wed, 28 Oct 2026 09:19:01 +0800</pubDate><description><![CDATA[一个任务拿着repo锁等待GPU，另一个任务拿着GPU锁等待repo。两把锁都被Mutex安全保护，也仍可能形成死锁。借用检查能约束引用，不会自动替多资源任务选择一个无环等待顺序。]]></description><category></category></item><item><title><![CDATA[收到 SIGTERM 后，流式推理究竟还要等谁结束？]]></title><link>https://blog.csdn.net/no1coder/article/details/169337352</link><guid>https://blog.csdn.net/no1coder/article/details/169337352</guid><author>no1coder</author><pubDate>Wed, 28 Oct 2026 09:17:55 +0800</pubDate><description><![CDATA[进程收到停止信号后，马上退出最干净，却也最容易让已经接住的响应只剩半截。反过来，无期限等待所有请求结束，也会把关机卡住。我需要的是明确的阶段和截止时间，不能只加一个cancel变量。把问题拆成识别关机条件、通知各部分、等待它们结束。它没有承诺一枚CancellationToken能自动让外部模型停止计算。]]></description><category></category></item><item><title><![CDATA[模型卡上分数更高，为什么我的 Rust 小任务还得重测？]]></title><link>https://blog.csdn.net/no1coder/article/details/169337168</link><guid>https://blog.csdn.net/no1coder/article/details/169337168</guid><author>no1coder</author><pubDate>Wed, 28 Oct 2026 09:16:49 +0800</pubDate><description><![CDATA[2026-10-13发布的列出了多类评估，也披露了已知限制。它能告诉我官方测了什么，不能直接告诉我“这次FFI修复一定正确”。本文没有调用该模型，也没有给模型重新排名。]]></description><category></category></item><item><title><![CDATA[同一段点积代码跨平台：先保证回退路径也能编译]]></title><link>https://blog.csdn.net/no1coder/article/details/169336819</link><guid>https://blog.csdn.net/no1coder/article/details/169336819</guid><author>no1coder</author><pubDate>Wed, 28 Oct 2026 09:14:35 +0800</pubDate><description><![CDATA[给函数加上AVX2，并不能让ARM机器理解x86指令。我想保留的最小结构是：任何平台都有标量实现，特定架构下才编译加速函数，运行时再检查相应CPU能力。编译条件与运行条件各管一层。]]></description><category></category></item><item><title><![CDATA[推理请求太多时，Semaphore 为什么还会越排越久？]]></title><link>https://blog.csdn.net/no1coder/article/details/169268450</link><guid>https://blog.csdn.net/no1coder/article/details/169268450</guid><author>no1coder</author><pubDate>Tue, 27 Oct 2026 21:52:28 +0800</pubDate><description><![CDATA[限制同时推理的请求数，不等于限制系统已经接住的请求数。如果每来一个请求就spawn一个任务，然后在任务里等Semaphore，执行中的数量受控，等待中的任务仍可能不断增长。描述许可与等待机制。许可适合表达“可以同时占用几份资源”，队列容量、等待期限和拒绝策略仍要由应用定义。本文滚动文档的版本号不等于本地依赖版本。]]></description><category></category></item><item><title><![CDATA[Wasm 线性内存能借给宿主多久？从一次 memory.grow 看起]]></title><link>https://blog.csdn.net/no1coder/article/details/169268424</link><guid>https://blog.csdn.net/no1coder/article/details/169268424</guid><author>no1coder</author><pubDate>Tue, 27 Oct 2026 21:51:39 +0800</pubDate><description><![CDATA[宿主拿到Wasm内存指针后，把它存进结构体以便下次复用，看起来省了一次查询。但只要中间还可能调用guest，就必须重新判断这份视图是否有效，不能只看Rust结构体还活着。明确提醒，普通内存增长可能搬迁底层存储，之前构造的原始指针或切片可能失效。2026-10-23读到的页面标记51.0.0-dev；它不是本机已经编译验证的50.0.0接口。]]></description><category></category></item><item><title><![CDATA[INT8 量化快之前，先统一标量与 SIMD 的舍入规则]]></title><link>https://blog.csdn.net/no1coder/article/details/169268373</link><guid>https://blog.csdn.net/no1coder/article/details/169268373</guid><author>no1coder</author><pubDate>Tue, 27 Oct 2026 21:49:42 +0800</pubDate><description><![CDATA[标量结果和SIMD结果差一个整数，未必是浮点精度不稳定，也可能是两条路径根本用了不同舍入规则。2.5到底变成2还是3，是可以先查合同、再用断言确认的事。规定了相应整数输出范围与nearest-even舍入。本文取最简单的per-tensor INT8规则作参考，不实现完整ONNX算子，也不把页面版本当成十月发布新闻。访问日2026-10-23。]]></description><category></category></item><item><title><![CDATA[两个 Agent 都说自己是 Leader，Rust 所有权能管住吗？]]></title><link>https://blog.csdn.net/no1coder/article/details/169267147</link><guid>https://blog.csdn.net/no1coder/article/details/169267147</guid><author>no1coder</author><pubDate>Tue, 27 Oct 2026 20:07:29 +0800</pubDate><description><![CDATA[旧Agent暂停太久，新Agent接管了任务；旧Agent恢复后，又把结果写回。两个进程的Rust编译器都可能没有任何借用错误，远端资源却仍会收到冲突写入。编译期唯一引用只在相应程序的内存模型里有意义，不是跨机器的Leader证书。讨论复制日志如何达成一致。只数几个ACK，不足以实现任期、投票、日志匹配和提交规则。本文不实现Raft，只检查旧持有者恢复后的一个写入边界。]]></description><category></category></item><item><title><![CDATA[读完 Rust 1.99.1，我把学习清单缩成了一个 FFI 回归例]]></title><link>https://blog.csdn.net/no1coder/article/details/169267104</link><guid>https://blog.csdn.net/no1coder/article/details/169267104</guid><author>no1coder</author><pubDate>Tue, 27 Oct 2026 20:05:51 +0800</pubDate><description><![CDATA[十月版本公告里，我最想追问的不是“又快了多少”，而是一个bool返回值为什么值得修复。2026-10-15的说明：x86_64上的FFI bool返回值曾存在高位未正确零扩展的问题。该结论来自官方修复说明，本文没有复现那个编译器缺陷。]]></description><category></category></item><item><title><![CDATA[把空格扫描提速，不等于写好了 BPE 分词器]]></title><link>https://blog.csdn.net/no1coder/article/details/169170648</link><guid>https://blog.csdn.net/no1coder/article/details/169170648</guid><author>no1coder</author><pubDate>Mon, 26 Oct 2026 22:35:46 +0800</pubDate><description><![CDATA[看到一段循环每秒能扫描多少字节，我会先确认它输出的是什么。如果输出只有空格位置，就算换成SIMD，也还没有实现模型需要的token IDs。把归一化、预分词、模型分词与后处理分开说明。则介绍字节搜索。两者在文本流水线里都可能有用，但承担的契约不同。这些是持续维护的资料，本轮2026-10-23访问，不能当作十月新品新闻。]]></description><category></category></item><item><title><![CDATA[Rust 的 Arena 能接管 llama.cpp 的 KV Cache 吗？先画清所有权]]></title><link>https://blog.csdn.net/no1coder/article/details/169170639</link><guid>https://blog.csdn.net/no1coder/article/details/169170639</guid><author>no1coder</author><pubDate>Mon, 26 Oct 2026 22:35:08 +0800</pubDate><description><![CDATA[在Rust网关里集中分配几个Vec，很容易写出一个叫Arena的结构体。但如果模型推理由llama.cpp完成，网关的分配器并没有因此接管模型权重、KV缓存或GPU工作区。名字相同不等于分配路径相同。是核对实际服务参数和内存配置的入口；发表于2023年，讨论的是另一套KV管理设计。论文不是“任意Rust Arena能插入llama.cpp”的证明，本文也没有复现它的结果。]]></description><category></category></item><item><title><![CDATA[Agent 检查点真的落盘了吗？把内存快照放进重启实验]]></title><link>https://blog.csdn.net/no1coder/article/details/169170625</link><guid>https://blog.csdn.net/no1coder/article/details/169170625</guid><author>no1coder</author><pubDate>Mon, 26 Oct 2026 22:34:29 +0800</pubDate><description><![CDATA[把状态clone进Vec，调试时确实能“回到上一帧”。但进程退出后，这份Vec不会替我重建任务。Agent检查点如果承诺重启恢复，就必须把恢复放到另一个进程里验。]]></description><category></category></item><item><title><![CDATA[用 Rust 读一份短剧素材清单：失效端点和缺失来源怎样报错]]></title><link>https://blog.csdn.net/no1coder/article/details/169169690</link><guid>https://blog.csdn.net/no1coder/article/details/169169690</guid><author>no1coder</author><pubDate>Mon, 26 Oct 2026 21:32:06 +0800</pubDate><description><![CDATA[本例每行六列：shot_id、channel、model、prompt_ref、source、endpoint_ref，用竖线分隔。字段内禁止竖线和换行；若要容纳任意提示词，就应改用有转义规则的成熟格式，不能继续拼字符串。prompt_ref指向提示词记录，不在清单里塞完整长提示词。source要求非空HTTPS引用，但字符串通过不表示链接可访问或具有授权；endpoint_ref也只是记录，不是可调用URL白名单。校验器不会发网络请求，不会读取凭证。if f.len()!continue;if!]]></description><category></category></item><item><title><![CDATA[Wasmtime 实例销毁后，谁还持有内存：一张 Rust owner 账本]]></title><link>https://blog.csdn.net/no1coder/article/details/169169645</link><guid>https://blog.csdn.net/no1coder/article/details/169169645</guid><author>no1coder</author><pubDate>Mon, 26 Oct 2026 21:31:03 +0800</pubDate><description><![CDATA[drop了实例，RSS怎么没回来？”这个问题里至少混着三件事：句柄是否消失、实例资源是否归还、操作系统是否回收物理页。我先查owner，不从一张RSS截图判断泄漏。2026-10-20发布的新增了Engine::release_idle_pool_memory，用于释放池中空闲槽位保留的驻留内存。这正说明“槽位空闲”和“全部驻留页已归还”需要分别观察。本文没有调用或实测该API。]]></description><category></category></item></channel></rss>