zig

lang
2022-07-27

  • 言語特徴

    • comptime なるものがあるらしい
    • better C
      • 文法はRustとても意識していそう
    • Rust よりは安全性低い
    • 手動メモリ管理?
  • WebAssemblyに気軽にコンパイル出来るらしい

  • bunというnote + npm + webpackなツールがzig製で流行っているらしい

  • ErrorUnion: <error-ty>!<ret_ty>

    • Eitherみたいな
    • try <expr> で呼び出し

パッケージ

話題

wasm build

wasm2wat demo でみると余計な

(module
  (type $t0 (func (param i32)))
  (type $t1 (func (param i32 i32) (result i32)))
  (type $t2 (func))
  (import "wasi_snapshot_preview1" "proc_exit" (func $wasi_snapshot_preview1.proc_exit (type $t0)))
  (func $add (export "add") (type $t1) (param $p0 i32) (param $p1 i32) (result i32)
    (i32.add
      (local.get $p1)
      (local.get $p0)))
  (func $_start (export "_start") (type $t2)
    (call $wasi_snapshot_preview1.proc_exit
      (i32.const 0))
    (unreachable))
  (memory $memory (export "memory") 16)
  (global $g0 (mut i32) (i32.const 1048576)))
zig build-lib src/main.zig -target wasm32-freestanding -dynamic -OReleaseSmall

参考文献