Bun 发布了 beta 版本: Bun is a fast all-in-one Javascript runtime - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐关注
Meteor
JSLint - a Javascript code quality tool
jsFiddle
D3.js
WebStorm
推荐书目
Javascript 权威指南第 5 版
Closure: The Definitive Guide
Exuanbo
V2EX    Javascript

Bun 发布了 beta 版本: Bun is a fast all-in-one Javascript runtime

  •  
  •   Exuanbo 2022-07-06 14:23:41 +08:00 3733 次点击
    这是一个创建于 1193 天前的主题,其中的信息可能已经有所发展或是发生改变。
    13 条回复    2022-07-13 22:29:30 +08:00
    binhb
        1
    binhb  
       2022-07-06 16:22:31 +08:00 via iPhone
    zig 还是第一次听说
    janxin
        2
    janxin  
       2022-07-06 16:24:41 +08:00   1
    @binhb zig 可以做 C 后端,平替 gcc/clang
    SingeeKing
        3
    SingeeKing  
    PRO
       2022-07-06 17:17:26 +08:00   2
    @binhb #1 zig 用在 rust 跨平台编译有奇效
    FrankHB
        4
    FrankHB  
       2022-07-06 18:23:40 +08:00
    用 Javascript 而不是 v8 看来是 ES conformance 上正确的选择。
    @janxin 想多了,clang 是前端,后端是 LLVM 。
    且不说 zig cc is not the main purpose of the Zig project ,zig cc 也就是套皮 zig clang 而已,后者依赖 libclang 。所以 zig 做的连前端都算不上,只是个 driver 。
    装 zig 去编译 C 也就是只需要 C 前端的时候省事(然而作者起码没放弃 C++)。但真要轻便,除非要一次性搞定所有 target arch ,直接 tcc 不更实用么。
    FrankHB
        5
    FrankHB  
      &bsp;2022-07-06 18:27:04 +08:00
    @FrankHB 看了下,好像是我 out 了,现在都有 zig c++了。
    不过除了包装东西给 zig 调还是意义不大。
    Nugine0
        6
    Nugine0  
       2022-07-06 19:48:30 +08:00 via Android
    作者单人输出能力很强,测试效果很好,值得关注。
    不过 bun 还处于早期,issue 里一大堆段错误,也有内存泄露和崩溃问题,有点担心它的性能是不是通过牺牲安全性和正确性换来的。
    AV1
        7
    AV1  
       2022-07-06 20:41:03 +08:00
    @FrankHB
    应该是 JavascriptCore 吧,好像是苹果公司的引擎吧。
    不知道它跟 V8 相比有什么优势。
    yuekcc
        8
    yuekcc  
       2022-07-06 23:00:01 +08:00   1
    js 工具链是真的卷。卷 rust ,卷 go ,现在又来卷 zig 。rust 、go 起码有稳定版本,zig 现在还是很早期阶段。

    ts/jsx 转换、bundler 使用 zig 实现,也加入 node_modules 的支持算法,这部分可以对标 esbuild ( go 写的)。bun 也加入 napi 支持,似乎可以直接使用 nodejs 的一些 c 拓展。

    JavascriptCore 用来跑 js 代码。JavascriptCore 性能可能比 v8 差点,至少很多 benchmark 结果是这样的。README 上写是比较容易集成到 zig 代码吧。

    编译似乎是用 build.zig ,说不定自己编译 bun 会比较简单。

    roadmap 还很长很长。不知道啥时候能清掉。
    janxin
        9
    janxin  
       2022-07-07 09:38:15 +08:00 via iPhone
    @FrankHB zig 在做自己的 backend 了,不过目标时间是 1.0 https://kristoff.it/blog/zig-new-relationship-llvm/

    zig cc 确实不是主要目标,但是很多公司在用 zig cc 。uber 为此还专门赞助了 zig ,专门签了独家协议优先解决 zig cc 的问题
    RockShake
        10
    RockShake  
       2022-07-07 11:21:18 +08:00
    这性能确实牛批啊,JS 的工具链真的太卷了
    haoliang
        11
    haoliang  
       2022-07-07 21:36:39 +08:00   1
    看这[星星的涨势]( https://star-history.com/#Jarred-Sumner/bun&Date), 7 天时间从 2k 涨到 12k ! web 前端这块也太热了吧
    FrankHB
        12
    FrankHB  
       2022-07-13 22:25:08 +08:00
    @DOLLOR 是 JSC ,没注意打快了输入法选词一回车给跳了……
    JSC 唯一较早就支持 ES6 的主流实现。到了 2022 ,它居然仍是目前唯一具有 ES6 PTC 的少数实用 ES 客户端实现(剩下也就 XS6 和 Duktape 俩没法相提并论的弟弟)。
    关键点是,和其它特性不同,这里其它实现缺少的 PTC 对实现结构的影响是重量级的,原则上无法通过 babel 之类的外加运行时 polyfill 套皮高效正确实现(实际上不说多出来的开销,现在就没一个正确的),要添加正确的实现基本就只有回炉拆了重造。因此第三方现实不可能补救这个特性缺失带来的缺陷。
    尤其可耻是 v8 曾经有--harmony-tailcalls ,后来因为可笑的“工程”理由给干掉了。(那你费劲实现干嘛?)
    FrankHB
        13
    FrankHB  
       2022-07-13 22:29:30 +08:00
    @FrankHB JSC 唯一→JSC
    低级 typo……
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     1003 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 25ms UTC 18:39 PVG 02:39 LAX 11:39 JFK 14:39
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86