タグ

zigに関するAkinekoのブックマーク (7)

  • Zigで書いたDLLをRustで読み込む

    姉妹編 Windows版アイヌ語IMEを作るにあたって、ZigでTSFライブラリを書いてみたいけど、やはり設定画面などGUIはtauriとSvelteKitで作りたいので、とりあえず最初のステップとして(?)RustZigのインターロップを勉強しておきたいのでやってみました。 はじめに 稿では、RustのアプリにZigで生成されたDLL(ダイナミック・リンク・ライブラリ)を読み込む方法についてお話します。せっかくなのでリンクする方法と、ロードする方法の両方についてご紹介します。基的にはWindows中心ですが、Linuxなどでも似たような手順でできるかと思われます。 TL;DR C ABIを介してやります。ロードする場合はlibloadingを使います。 インストール Rustのインストール方法(公式・日語) Zigのインストール方法(公式・日語・古い) TL;DR (Windo

    Zigで書いたDLLをRustで読み込む
  • ZigはCMakeの代替となるか

    既存のプロジェクトで使用しているコンパイラを置き換えるだけで、Zigに付属しているCコンパイラを利用できる。 クロスビルドが標準で可能 上でも述べた通り、Zigは標準でクロスコンパイルが可能である。 Zig libcのTaget一覧 ❯ zig targets | jq ".libc" [ "aarch64_be-linux-gnu", "aarch64_be-linux-musl", "aarch64_be-windows-gnu", "aarch64-linux-gnu", "aarch64-linux-musl", "aarch64-windows-gnu", "aarch64-macos-none", "aarch64-macos-none", "armeb-linux-gnueabi", "armeb-linux-gnueabihf", "armeb-linux-musleabi

    ZigはCMakeの代替となるか
  • 「ZigはCよりも速いです。」をVector/SIMD最適化で検証する

    「パフォーマンスについて言えば、ZigはCよりも速いです。」 この一文は Zig 言語の公式サイトの詳細な概要に実際に書いてある文章です。 その理由としていくつか挙げた上で最後にちらっと「ZigSIMD ベクトル型を直接公開しており、移植性の高いベクトル化コードを簡単に記述することができます。」と書いてあります。今回の記事では画像処理っぽいお題を使って実際に SIMD 最適化される様子を検証してみます。 ベンチマーク環境 OS: Ubuntu20.04 on WSL2 on Windows11 CPU: AMD Ryzen 9 5900X 12-Core Processor お題 一般的な画像データ構造の表現である、幅×高さ×4(RGBA)の長さを持つ8bit整数の配列を受け取り、in-placeでRGBの値を 10 加算して明るくするという関数を考えます。Aの値は元のままとします。

    「ZigはCよりも速いです。」をVector/SIMD最適化で検証する
    Akineko
    Akineko 2023/01/21
  • Zigで簡単クロスコンパイル 2022 - k0kubun's blog

    僕は以下の3つのツールを複数プラットフォーム向けにクロスコンパイルしてバイナリ配布しており、以下のように全て異なる言語で開発している。 Go: sqldef Rust: xremap mruby: mitamae クロスコンパイルに苦労している話をするとZigを使ってみたらいいんじゃないかと言われることがあり、周りでもZigが何となく流行り始めた気がするので、これらのツールに実際自分で使ってみてどうだったかという事例を紹介したい。 Zigとは Zigはそもそもプログラミング言語なのだが、C/C++とのinteropがやりやすい言語なようで、おそらくそれに必要でLLVMベースのC/C++ツールチェインが同梱されていて、しかもそれをDrop-In Replacement for GCC/Clangとして売りにしている。 僕はZig言語そのものにはそれほど興味はないのだが、クロスコンパイラとして

    Zigで簡単クロスコンパイル 2022 - k0kubun's blog
    Akineko
    Akineko 2022/08/12
  • Zig 言語のファーストインプレッション

    Bun を読むにあたって、まずZigを抑える必要があると思ったので数時間学習してみた。チュートリアルを一通りやったのと、ちょっと手を動かした程度で、正直エアプの域は出てない。 自分の動機として wasm を吐くのに使う言語をずっと探していて、Rust も悪くないが正直学習コスト高すぎでしんどく、Zig がそれに足るか調査していたという感じ。 この記事を書くにあたっての細かい作業はこちら https://zenn.dev/mizchi/scraps/287b4414da2b29 Zig 言語自体のスタンス まず Zig 言語自体がなぜ D や Rust ではないかはこの記事がわかりやすい https://ziglang.org/learn/why_zig_rust_d_cpp/ 以下 Deepl で訳してちょっと修正したもの nostd 指向 標準ライブラリなしでもファーストクラスでサポート

    Zig 言語のファーストインプレッション
    Akineko
    Akineko 2022/07/19
  • ざっくりとしたZigの紹介

    BunのおかげでZigに注目する人が増えたように感じます。 個人的にZigを使ってる人間として紹介がてら自分のZigに対する印象を書いていきます。 どんな言語か(公式) 「堅牢で最適で再利用可能なソフトウェアを維持するための汎用プログラミング言語」 公式のより詳しい紹介はこちら Cをベースに現代的な機能を追加している Raylibのサンプルコード // raylib.comから引用(いくつかのコメントを削除) #include "raylib.h" int main(void) { const int screenWidth = 800; const int screenHeight = 450; InitWindow(screenWidth, screenHeight, "raylib [core] example - basic window"); SetTargetFPS(60);

    ざっくりとしたZigの紹介
    Akineko
    Akineko 2022/07/15
  • 2022 年の夏休みに Zig で QUIC を実装してオープンソースとして公開するお手伝い

    zig_quic.md 2022 年の夏休みに Zig で QUIC を実装してオープンソースとして公開するお手伝い こちらの応募は終了しました、冬も募集予定です。 提供: 株式会社時雨堂 バージョン: 2022.6.0 著者: @voluntas 成果 @so298 6 週間 QUIC クライアント shiguredo/quic-client-zig @magurotuna 6 週間 QUIC サーバー shiguredo/quic-server-zig @naoki9911 6 週間 TLS 1.3 クライアント/サーバー shiguredo/tls13-zig 目的 夏休み学生向けの OSS スポンサーくらいに考えてもらえれば Zig がとても良い言語だと感じているが、学ぶ余裕はないので代わりに学んで教えて欲しい QUIC は今後インターネットにおいてとても重要な技術となるため学生の

    2022 年の夏休みに Zig で QUIC を実装してオープンソースとして公開するお手伝い
  • 1