惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

博客园 - 三生石上(FineUI控件)
T
Threat Research - Cisco Blogs
月光博客
月光博客
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
爱范儿
爱范儿
Hugging Face - Blog
Hugging Face - Blog
腾讯CDC
云风的 BLOG
云风的 BLOG
D
Docker
罗磊的独立博客
U
Unit 42
博客园 - 聂微东
人人都是产品经理
人人都是产品经理
P
Proofpoint News Feed
博客园 - Franky
Apple Machine Learning Research
Apple Machine Learning Research
MyScale Blog
MyScale Blog
B
Blog RSS Feed
美团技术团队
J
Java Code Geeks
S
Securelist
Cyberwarzone
Cyberwarzone
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
NISL@THU
NISL@THU
Security Latest
Security Latest
Recent Commits to openclaw:main
Recent Commits to openclaw:main
Recorded Future
Recorded Future
Hacker News - Newest:
Hacker News - Newest: "LLM"
L
LINUX DO - 热门话题
Recent Announcements
Recent Announcements
Last Week in AI
Last Week in AI
A
About on SuperTechFans
MongoDB | Blog
MongoDB | Blog
Spread Privacy
Spread Privacy
T
Tenable Blog
I
Intezer
N
News | PayPal Newsroom
大猫的无限游戏
大猫的无限游戏
A
Arctic Wolf
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
V
V2EX - 技术
S
Schneier on Security
S
SegmentFault 最新的问题
Latest news
Latest news
宝玉的分享
宝玉的分享
V
Visual Studio Blog
V
V2EX
T
Tor Project blog
C
Comments on: Blog

Ruby China

用 Ruby 构建 AI Agent 之一:消息循环 在 Reddit 上发了一个 Ruby Agent 开发的帖子有点火了 有没有用 rails+AI 做了审批流的功能模块或 gem,交流下经验 最新的不一定好——预防供应链攻击 [远程] Moonveil Entertainment — web3 游戏工作室招聘 AI+ 区块链 / 区块链全栈工程师 讓 ActiveRecord model 只能在特定 service class 裏被更新 早说了转语言了身体却很诚实... Rails 开发工程师--电商网站 早期程序员囤比特币,核心目的从不是投机暴富,而是看清了婚姻的本质: AI 的经济账根本算不通 坐班宁波,提供食宿,招聘运营/BD、HR Ruby 4.0.4 修复了一个性能问题 招聘客服兼职 接受小白 电商销售 Harness 工程经验分享:实现 100% 缓存命中 OpenClacky(RubyAgent)的 7 个关键决策 寻找“乡村黑客”:向着广阔的乡土出发 matz 用 claude 把 mruby 的 issues 全关了 [成都 / 远程] Python 后端工程师 - 前硅谷大厂资深工程师带队,美资 FinTech 初创投资决策平台 (15k / 月)
關於 spinel 的原理和侷限
mizuhashi · 2026-05-30 · via Ruby China

今天和 claude 一起研究了一下 https://github.com/matz/spinel ,大概知道了它和別的靜態語言有什麼不同。

spinel 的特點是需要對整個程序進行類型推斷,也就是一個方法的類型,實際上是由所有 call site 決定的。當看到一個方法調用的時候,分析器會把參數的類型記下來,然後把它疊到方法的定義上。例如一個方法factorial(n),當分析器看到factorial(1) factorial(2)的時候,它就知道 factorial 能接受 integer,如果整個程序都沒有傳別的類型,那麼它就能斷定 n 是 integer,然後可以輸出很高效的 c 代碼。但如果分析器之後看到 factorial('1'),n 就會變成 integer | string,會需要額外處理多態,實際生成的 c 代碼就會包含這部分的處理。

這樣做的後果是,整個程序如果變了一行,之前的推導就要全部重新來過,因為這個是基於整個程序的推導。其他靜態語言由於會聲明函數的類型,推導對於函數體內和函數外是獨立的,因此一個函數在編譯了之後,如果簽名沒變就可以一直用,可以做到增量編譯。

crystal 實際上也是用整個程序做推斷的,所以會有和 spinel 一樣的侷限,沒辦法做增量編譯。