Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

並び順

ブックマーク数

期間指定

  • から
  • まで

1 - 40 件 / 131件

新着順 人気順

zigの検索結果1 - 40 件 / 131件

zigに関するエントリは131件あります。 programmingCRust などが関連タグです。 人気エントリには 『ミッチェル・ハシモト氏の個人開発によるターミナルエミュレータ「Ghostty 1.0」、12月に正式リリース予定。オープンソースとして公開へ』などがあります。
  • ミッチェル・ハシモト氏の個人開発によるターミナルエミュレータ「Ghostty 1.0」、12月に正式リリース予定。オープンソースとして公開へ

    ミッチェル・ハシモト氏の個人開発によるターミナルエミュレータ「Ghostty 1.0」、12月に正式リリース予定。オープンソースとして公開へ HashiCorpの創業者の一人であるミッチェル・ハシモト氏は、個人のプロジェクトとして開発してきたターミナルエミュレータ「Ghostty」のバージョン1.0を今年(2024年)12月にリリースし、合わせてオープンソースとして公開することを明らかにしました。 ハシモト氏は2023年12月にHashiCorpを退職。その後、個人プロジェクトとしてターミナルエミュレータの開発をしていることをX/Twitterなどで以前から発信していました。 これは2023年5月のポストです。「ここ数年、なんとなく自分用のターミナルエミュレーターを作っていた。過去18カ月、これを自分だけのターミナルとしてフルタイムで使っている」と書いていることから分かるとおり、Hashi

      ミッチェル・ハシモト氏の個人開発によるターミナルエミュレータ「Ghostty 1.0」、12月に正式リリース予定。オープンソースとして公開へ
    • 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の代替となるか
      • Bun — A fast all-in-one JavaScript runtime

        Develop, test, run, and bundle JavaScript & TypeScript projects—all with Bun. Bun is an all-in-one JavaScript runtime & toolkit designed for speed, complete with a bundler, test runner, and Node.js-compatible package manager.

          Bun — A fast all-in-one JavaScript runtime
        • なぜ Zig の採用を検討しているのか

          かなり雑に書いてるので、雑に読んでください。 Bun が Zig で開発されていることを知り、そこから Zig を調べてみています。 調べていくと自分が求めていた言語っぽいというのがあり、社外では学生に QUIC や TLS 1.3 を Zig で OSS を開発してもらうお仕事を出したり、社内では実際に採用に向けて調査を進めています。 そもそもの目的自分の会社では Erlang VM を利用した製品をメインに利用しています。ただ Erlang VM 遅いんです。少なくとも暗号処理であれば Rust の方が 2 倍ほど速いです。Erlang VM 自体 JIT を採用したり、いろいろ頑張ってくれているのですが劇的な高速化というのは今すぐには難しいのが現実です。 そこで NIFs (Native Implemented Functions) を使って頑張るという戦略があります。早い話が Er

          • 【Bun】新しいJavaScriptランタイムについてふわっとまとめた

            JavaScriptランタイムと言えばnode。 nodeの代替としてdenoがありますが、新たにbunというものを知ったのでふわっとまとめてみました。次のリンクは、Bunを知るきっかけとなったものです。 トップのコメントを一部抜粋(DeepL翻訳) 私が興奮していることのひとつは、bun install です。 Linuxでは、シンプルなNext.jsアプリの依存関係を、現在利用できる他のnpmクライアントよりも20倍ほど速くインストールします。 Bunとは 「速くて All in One な Javascript ランタイム」 内容を見ていく前に、Bunへの注目度がわかるグラフをご覧ください。 7月6日からほぼ垂直にStarを獲得しており、7月11日までの五日間で約20倍になっています。すごい。 ここからは私が気になった内容をピックアップして紹介していきます。 All in One B

              【Bun】新しいJavaScriptランタイムについてふわっとまとめた
            • 世界のプログラミング言語(44) シンプルで現代的なZig言語、RustやC++が複雑すぎると嘆く人の福音となるか

              Zigは2015年に登場した新しいオープンソースのプログラミング言語です。Go言語やRust言語のように、C言語の置き換えを目標にしたコンパイラ言語です。その最大の特徴はシンプルであることです。確かに、マクロもプリプロセッサもありませんが、現代的な言語に仕上がっています。最近話題になることが増えてきたので試してみましょう。 ZigのWebサイト Zigとは Zigはアンドリュー・ケリー氏によって2015年に登場した新しいプログラミング言語です。コンパイラ基盤のLLVMを利用しており、幅広いOSに対応した実行ファイルを生成することができます。 Zigはシンプルをモットーとしています。Zigのマニュアルでは、C++やRust、D言語など多くの機能を持つ言語を挙げて、それらとは異なりシンプルであることを名言しています。 そして、その構文は、C言語と似ているのですが、遅延処理のdefer構文や型推

                世界のプログラミング言語(44) シンプルで現代的なZig言語、RustやC++が複雑すぎると嘆く人の福音となるか
              • Learning Zig

                home Learning Zig Welcome to Learning Zig, an introduction to the Zig programming language. This guide aims to make you comfortable with Zig. It assumes prior programming experience, though not in any particular language. Zig is under heavy development and both the Zig language and its standard library are constantly evolving. This guide targets the latest development version of Zig. However, it's

                • I'm porting tsc to Go

                  I’m porting the TypeScript Type Checker tsc to Go, and not Rust. As the creator of SWC, an extensible Rust platform, this might sound strange. Let me explain. Why port tsc?# As TypeScript continues to rise in adoption, large projects are facing a dilemma: type checking is one of the slowest parts of their workflow. Developers want type safety without the tradeoff of slower iteration cycles. The Ty

                    I'm porting tsc to Go
                  • 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 言語のファーストインプレッション
                    • Zig で簡単な JSON パーサを書いてみた。

                      #include <stdio.h> int main(int argc, char* argv[]) { int i; for (i = 1; i <= 100; i++) { if (i % 15 == 0) puts("FizzBuzz"); else if (i % 15 == 0) puts("FizzBuzz"); else if (i % 3 == 0) puts("Fizz"); else if (i % 5 == 0) puts("Buzz"); else printf("%d\n", i); } return 0; } fn main() { let mut x = 1; while x <= 100 { if x % 15 == 0 { println!("FizzBuzz"); } else if x % 3 == 0 { println!("Fizz"); } e

                        Zig で簡単な JSON パーサを書いてみた。
                      • VSCodeがWebAssemblyの実行時デバッグに対応。C/C++やRust、Zigなどのソースコードと関連付け、変数参照、ブレークポイントなど可能に

                        VSCodeがWebAssemblyの実行時デバッグに対応。C/C++やRust、Zigなどのソースコードと関連付け、変数参照、ブレークポイントなど可能に マイクロソフトは、オープンソースで開発しているコードエディタ「Visual Studio Code」(以下、VSCode)の最新版となる2023年9月版(バージョン1.83)で、JavaScriptデバッガがWebAssemblyのデバッグにも対応したことを明らかにしました。 The JavaScript debugger can now debug code compiled into WebAssembly if it includes DWARF debug information. For example, C++ code compiled using Emscripten can be debugged: pic.twitt

                          VSCodeがWebAssemblyの実行時デバッグに対応。C/C++やRust、Zigなどのソースコードと関連付け、変数参照、ブレークポイントなど可能に
                        • ざっくりとした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の紹介
                          • 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 を実装してオープンソースとして公開するお手伝い
                            • 「ZigはCよりも速いです。」をVector/SIMD最適化で検証する

                              「パフォーマンスについて言えば、ZigはCよりも速いです。」 この一文は Zig 言語の公式サイトの詳細な概要に実際に書いてある文章です。 その理由としていくつか挙げた上で最後にちらっと「Zig は SIMD ベクトル型を直接公開しており、移植性の高いベクトル化コードを簡単に記述することができます。」と書いてあります。今回の記事では画像処理っぽいお題を使って実際に 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最適化で検証する
                              • 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
                                • 5分でざっと理解するZig言語

                                  Zig言語の話をするときに、初めての人にざっと読んでもらうためのページ。 Zig言語とは 静的型付きのコンパイル言語。C言語と同じ立ち位置。 本家 ziglang.org のoverview 日本語 Wikipedia Wikipedia 英語版 ドキュメント 標準ライブラリのリファレンス 現在の状況 まだ開発中で正式リリースには至っていない。なのでまだ破壊的変更はあり得る。 記事を書いた時点の安定版タグは0.10.0。 公式なパッケージマネージャはまだない。[1](非公式なものは複数存在する) ** 2023/08/15 追記 ** 安定版0.11.0のリリースとともに公式版パッケージマネージャが利用可能になりました。 私が考えたキャッチコピー 「C言語が誕生したのは1972年。Zig言語はそれを2020年代の知見で再構成するもの。50年分の進化!!」 "C but with the p

                                    5分でざっと理解するZig言語
                                  • “しょうもないうっかり”を許さない、静的型付けの言語 コーディングミスを未然に防ぐ「Zig言語」の仕組みとは

                                    Kernel/VM探検隊は、カーネルやVM、およびその他なんでもIT技術の話題ジャンルについて誰でも何でも発表してワイワイ盛り上がろうという会です。小林哲之氏は、静的型付きコンパイル言語、Zigについて発表しました。 「C言語であった問題をとにかく解決する」を目標に掲げるZig言語 小林哲之氏(以下、小林):それでは、始めます。tetsu_kobaと申します。今日はZigの話をしたいと思います。 Zig言語は、けっこう新しい言語なので、初めて聞く方も多いかと思います。「5分でざっと理解するZig言語」というページを作っておいたので、こちらをご覧になってください。 ところでみなさん、解決まで何時間もかかったバグの原因が、実は数秒で直せるような、しょうもないうっかりコーディングミスだったという経験はありませんか? 私は何度もあります。 バグの原因が、しょうもないうっかりコーディングミスだったと

                                      “しょうもないうっかり”を許さない、静的型付けの言語 コーディングミスを未然に防ぐ「Zig言語」の仕組みとは
                                    • JavaScriptランタイム「Bun v0.3.0」リリース。メモリ消費量が3分の1以下に、npmパッケージの自動インストールなど

                                      JavaScriptランタイム「Bun v0.3.0」リリース。メモリ消費量が3分の1以下に、npmパッケージの自動インストールなど サーバサイドで実行可能なJavaScriptランタイム「Bun」の最新バージョン「Bun v0.3.0」がリリースされました。 BunはJavaScriptランタイムとバンドラ、トランスパイラ、タスクランナーなどの機能が最初から統合されているソフトウェアです。 JavaScriptエンジンにはSafariに搭載されているJavaScriptCoreを採用。Node.jsの主要なAPIやNode.jsのモジュール依存関係解決アルゴリズムも実装し、内蔵するnpmクライアントにより高速にnpmパッケージを読み込んで利用できるなど、Bun単体でさまざまな機能が統合され、便利に使えます。 さらにTypeScript/JSXトランスパイラによってTypeScriptファ

                                        JavaScriptランタイム「Bun v0.3.0」リリース。メモリ消費量が3分の1以下に、npmパッケージの自動インストールなど
                                      • Zigソフトウェア財団とZenプログラミング言語に関する声明 ⚡ Zig Programming Language

                                        ← Back to News page Zigソフトウェア財団とZenプログラミング言語に関する声明 Original English version available below. We are thankful to 株式会社HYPERIA and all the members of the Zig community that helped us with the Japanese translation. Zigソフトウェア財団は、Zigの開発者アンドリュー・ケリーによって創設された501(c)(3)非営利組織です。本財団はZigプログラミング言語開発のサポートと優れたグローバルコミュニティの育成を目的としています。 対してZenはコネクトフリー社によって保守されているZigのクローズドソースフォークです。コネクトフリー社は最近Zenコンパイラのためのライセンスモデルを発表し、

                                        • Zig言語のドキュメントを見て「なるほど!」と思ったところ

                                          前回の続き。 ちょっとZig言語が面白そうです。まだあまりzigでコードは書いていないのですが、ドキュメントやソースコードをながめて思ったことを書き散らかしてみます。 (他の人がすでに書いていることはなるべく書かない) オブジェクト指向でなくてデータ指向 C言語に後にC言語っぽい文法の言語はたくさん出てきました。C++, Java, C#, Go, Rustなど。 C++やJavaはオブジェクト指向の考え方を取り込んだもので、GoやRustはいきすぎたオブジェクト指向を反省して、interface とか trait とか良いところだけを抽出した感じになっています。(個人の感想です) Zigには純粋にC言語からの改善をしていて、オブジェクト指向の香りがあまりしません。 むしろ「データ指向設計」(Data-Oriented Design)が意識されているらしいです。 紹介してもらったこの動画が

                                            Zig言語のドキュメントを見て「なるほど!」と思ったところ
                                          • Zig の文書読んで所感を記す - Qiita

                                            これは何? Zig を学ぼうと 公式文書 (0.91時点) を読んでいるんだけど、読みながら思ったことを記していく。 続編は Zig の文書読んで所感を記す #2 へ。 その前に Zig への言及が最近多いなぁ、でもシンプルな言語だって言うしまあどうでもいいかなぁ、ぐらいの気持ちでいたんだけど、ZigはCMakeの代替となるか を読んで、俄然興味が湧いてきて、じゃあ読んでみるか、と思った。 数値 i32 とか u16 のような名前で型が提供されている。 整数は 128bit まである。そればかりか、 3bit とか 53bit のような中途半端な幅の整数も使える模様。面白い。 さらに。何に使うのかわかってないけど、 i0 u0 のようなゼロビットの整数もある。 ちなみに0ビット整数には 0 が代入できる。 u1 は、 0 または 1。 i1 は、 0 または -1 が代入可能。 浮動小数点

                                              Zig の文書読んで所感を記す - Qiita
                                            • ZigでWriting an OS in 1,000 Linesをやる

                                              ZigでWriting an OS in 1,000 Linesをやる #2023-11-21 自作 OS で学ぶマイクロカーネルの設計と実装(通称エナガ本)の補足資料として公開されているWriting an OS in 1,000 Linesを、できるだけZigでやってみることにした。 目次成果物 #repositoryは以下。 さいしょに #エナガ本は一通り読んでいたのだが、機能に対していくつかのOSの実装を眺める。という構成になっており、個人的には「同じような難易度でRV32を対象に 0->1 でシンプルなOSを作る書籍があるといいなあ」と思いながら読んでいたのだが、まさに欲していたものが公開されたので大喜びで実装を開始した。 自分はそのまま写経してしまうと頭に入らないため、異なる言語で書いてみたり、何らかの制約を課して実施することが多い。今回はZigで書いてみることにした。 概ね問

                                                ZigでWriting an OS in 1,000 Linesをやる
                                              • Zigについてのメモ

                                                入門した後のレベルぐらい向けのメモ

                                                  Zigについてのメモ
                                                • Zig探訪 - comptime編

                                                  イントロ さあ、やって参りました。 第1回Zig探訪のお時間です。 今回担当するのは、Zigを使い始めて早くも半年・永遠のニートことsmallkirbyです。 Zig探訪では、Zigの機能や特徴の中で面白いんじゃないかと思うものをピックアップして紹介していきます。 紹介しないこともあります。 第1回のテーマは、Zigの中でも特に重要なコンセプトであるcomptimeについてです。 Zigとは - Everything is Explicit Zigについておさらい 第1回ということで、最初に軽くZigについておさらいしておきましょう。 Zigは、2016年に開発が始まったコンパイル型汎用プログラミング言語です。 Rustが2015年に1.0リリースされた翌年に開発がスタートしたんですね。 最新のリリースはv0.12.0であり、大体1年くらいでマイナーアップデートされるようです。 まだ1.0

                                                    Zig探訪 - comptime編
                                                  • [全編無料] 他言語習得者がとりあえず使えるようになるZig

                                                    公式ドキュメントを私的に噛み砕きつつ、いくつかのコラムを添えて、Zigに入門する本です。 この本を読めばZigの機能を網羅できるわけではありませんが、取っ掛かりがつかめる様になると思います。 なお、未完成の章があったり、情報が書き加えられる可能性があります。

                                                      [全編無料] 他言語習得者がとりあえず使えるようになるZig
                                                    • Writing Hypervisor in Zig - Writing Hypervisor in Zig

                                                      Writing Hypervisor in Zig Ymir, the Type-1 Baremetal Hypervisor Writing Hypervisor in Zig は Zig 言語を使いフルスクラッチで Type-1 Hypervisor を実装しようというブログシリーズです。 OS よりも低いレベルで動作するベアメタル Hypervisor を実装するにあたり、ブートローダ・カーネル・VMM の各コンポーネントをイチから組み立てていきます。 本シリーズでは Ymir という名前の Hypervisor を実装します。 Ymir は Intel 64 (x86-64) CPU で動作し、Intel VT-x によるハードウェア仮想化支援機能を活用します。 Ymir は以下の特徴を持ちます: Type-1 Hypervisor: OS に一切依存しません Linux をブート

                                                      • WinterJSとは何者か?ベンチマークでの比較検証

                                                        概要 2024年3月12日にこんなニュースが飛び込んできました。 WinterJSの1.0が発表されたとのことで、今回はWinterJSとは何者なのかについてをまとめていき、検証していきます。 WinterJS WinterJS とは、Rustで書かれたJavaScriptランタイムでSpiderMonkeyエンジンを使用して、javaScriptを実行します。 Rustで書かれたと言っているのは、HTTPリクエストなどの処理や、JavaScriptイベントのループを処理をするRust の非同期ランタイムTokioを使用しているからです。 また、WinterJSは、WebAssemblyにコンパイルすることもできるようです。 そして、一番重要なことは、JavaScriptにおけるHTTP Serverとしての性能について、処理速度がとんでも無く早いということを謳っている点ですね。 今回は、

                                                          WinterJSとは何者か?ベンチマークでの比較検証
                                                        • Raspberry Pi PicoでLチカをZigでやってみた(そしてあまりのバイナリサイズの小ささに驚きを隠せない)

                                                          はじめに 最近Raspberry Pi Picoを買いました。 そこで、ZigでLチカする手順を書いておきます。 PCとラズパイを接続する ラズパイ上にBOOTSELがついているので、これを押しながらUSB接続します。 すると、ストレージとして認識されます。 ここにuf2ファイルをコピーすることで、プログラムを実行することができます。 MicroZigを使う MicroZigは組み込みにZigを使用するための仕組みを提供しています。 このプロジェクトはZigEmbeddedGroupというコミュニティによってメンテ、開発が行われています。 今回はこのコミュニティが提供している以下の二つのレポジトリを使います。 ZigEmbeddedGroup/rp2040 - ラズパイPicoに最適化されたMicroZig ZigEmbeddedGroup/uf2 - elfからUF2ファイルを生成してく

                                                            Raspberry Pi PicoでLチカをZigでやってみた(そしてあまりのバイナリサイズの小ささに驚きを隠せない)
                                                          • Zigで書いたコマンドラインアプリケーションにperfを使ってみた

                                                            はじめに Zigで書いたコマンドラインアプリケーションのボトルネック調査にperfを使ってみたメモです。 なお、私は今回初めてperfを使ったレベルで全然詳しくないので、間違いや改善点があればぜひご指摘ください。 環境は Ubuntu 22.04 LTS です。

                                                              Zigで書いたコマンドラインアプリケーションにperfを使ってみた
                                                            • Zig言語の一風変わった算術演算子

                                                              最近ホットな話題に便乗して 一部で注目を集めはじめたプログラミング言語Zigの言語仕様を眺めていたところ、他のプログラミング言語では見かけない一風変わった算術演算子が提供されるようです。 足し算3種盛 いわゆる「足し算」を行う算術加算について、Zig言語では 3種類の演算子 が提供されます。 +: 通常の算術加算。結果が表現範囲を超える場合、プログラムは未定義動作となる。ビルドモードによってはエラーを報告してプログラム停止する。 +%: 循環(Wrapping)加算。結果が表現範囲を超える場合、値を2の補数表現とみなして下位ビットを代入する。 +|: 飽和(Saturating)加算。結果が表現範囲を超える場合、その整数型の最大値を代入する。 例えば8bit符号無し整数型(u8)/値域[0, 255]における足し算では、それぞれ次の演算結果が得られます。 足し算以外の算術演算に対しても同様

                                                                Zig言語の一風変わった算術演算子
                                                              • ZigでRay Tracing in One Weekendをやってみた

                                                                はじめに ここ数週間でホットな言語、Zigを触っている。 何か作りたいなと思っていたが、以前からやってみたかったRay Tracing in One Weekend (週末レイトレーシング)をやってみることにした。 最終的に生成される画像。うっとりする 所感 本文はC++で書かれているが、クラス、継承、演算子オーバーロード等の概念はZigにはないため適宜工夫する必要があった。 また、筆者が普段(型の緩めな)PythonやJSを主に使っているため、終始コンパイラに叱られっぱなしだった[1]。 面白い/気になった点 RustやGo、TS等の近代静的型付言語では常識なのかもしれないが、個人的に新鮮だった機能や気になった点をここに列挙していく。 コンパイル時にのみ実行されるコード zigではcomptimeというマーカを付けることでコンパイル時に評価されるコードを書くことができる。 型情報や定数な

                                                                  ZigでRay Tracing in One Weekendをやってみた
                                                                • `zig cc`: a Powerful Drop-In Replacement for GCC/Clang - Andrew Kelley

                                                                  `zig cc`: a Powerful Drop-In Replacement for GCC/Clang If you have heard of Zig before, you may know it as a promising new programming language which is ambitiously trying to overthrow C as the de-facto systems language. But did you know that it also can straight up compile C code? This has been possible for a while, and you can see some examples of this on the home page. What's new is that the zi

                                                                  • Using Zig in our incremental Turborepo migration from Go to Rust – Vercel

                                                                    Using Zig in our incremental Turborepo migration from Go to RustLearn how we're cross-compiling a Rust-Go-Rust sandwich to six platforms. We’ve been porting Turborepo, the high-performance build system for JavaScript and TypeScript, from Go to Rust. We talked about how we started the porting process, so now let’s talk about how we began porting our two main commands: run and prune. Since last time

                                                                      Using Zig in our incremental Turborepo migration from Go to Rust – Vercel
                                                                    • Goodbye to the C++ Implementation of Zig ⚡ Zig Programming Language

                                                                      Goodbye to the C++ Implementation of ZigHow we used WebAssembly to annihilate 80,000 lines of legacy codeAuthor: Andrew Kelley It’s funny - I have shared this story a handful of times with friends of mine who are qualified, competent software engineers, and each time the response was confusion about why any of this would be necessary or even remotely helpful. WebAssembly?! After ten minutes of puz

                                                                      • ZigでISUCON 12 の予選をCGOクロスコンパイルする - ぷらすのブログ

                                                                        A recent post on the front page of HN made a comparison between different SQLite packages for Go.... 今回は、M1 Mac で Linux AMD64 用のバイナリを作ってみます。 以下のコマンドでコンパイルできます。 $ brew install zig $ CGO_ENABLED=1 GOOS=linux GOARCH=amd64 CC="zig cc -target x86_64-linux" CXX="zig c++ -target x86_64-linux" make isuports Go では CC や CXX を使って、CGO コンパイルで使う C・C++ コンパイラを指定できます。 Zig は C や C++コンパイラとして使うこともできるため、環境変数に zig コマンド

                                                                          ZigでISUCON 12 の予選をCGOクロスコンパイルする - ぷらすのブログ
                                                                        • ZigのOpenCVライブラリ「zigcv」を作っている

                                                                          はじめに 以前、Zig の Tensorflow Lite のライブラリを使って遊ぶ記事を書いた。 この記事内では、静止画の処理を行うために、STB ライブラリを用いた。 こうなると次は動画の処理を行いたくなるものだ。 ... ならば OpenCV を Zig から使えるようにしようではないか。 OpenCV の C バインディングを作る OpenCV は C++で書かれているので、Zig から関数を呼び出すには C バインディングを作る必要がある。 1から OpenCV の C バインディングを作るのは大変なので、 今回は同じ手法で C バインディングを実装して呼び出している gocv のコードを利用させていただくことにした。 これで、工数の半分以上が省けることになる。 Zig バインディングを作る この記事の執筆中ではまだ完成はしていない。 しかし、Web カメラの画像を取得して文字や

                                                                            ZigのOpenCVライブラリ「zigcv」を作っている
                                                                          • C++でもRustでもなく「Zig」が必要なのはなぜか

                                                                            関連キーワード プログラマー | プログラミング 機械語に近い「低水準言語」を扱う開発者の心をつかみそうな新しいプログラミング言語がある。その名を「Zig」という。2024年7月時点で完全版はまだ公開されていないが、開発が盛んで、コミュニティーの熱気もある。 なぜ今新しいプログラミング言語が必要なのか。より具体的に言えば、Zigには「C」「C++」「Rust」「D」などのプログラミング言語を上回る点はあるのか。本連載はZigの主要なメリット5つを取り上げる。 「Zig」が必要なのはなぜ? その5つのメリット 併せて読みたいお薦め記事 新たなプログラミング言語を学んでみよう CでもC++でもなくプログラミング言語「Go」を使いたくなる“あの良さ”とは? プログラミング言語「Carbon」は「C++」より何が優れているのか メリット1.シンプルかつ簡潔な構文を備える 複雑ではないことがZigの

                                                                              C++でもRustでもなく「Zig」が必要なのはなぜか
                                                                            • Running Zig with WASI on Cloudflare Workers

                                                                              This post is also available in 简体中文 and 繁體中文. After the recent announcement regarding WASI support in Workers, I decided to see what it would take to get code written in Zig to run as a Worker, and it turned out to be trivial. This post documents the process I followed as a new user of Zig. It’s so exciting to see how Cloudflare Workers is a polyglot platform allowing you to write programs in the

                                                                                Running Zig with WASI on Cloudflare Workers
                                                                              • Will Hare replace C? Or Rust? Or Zig? Or anything else?

                                                                                Will Hare replace C? Or Rust? Or Zig? Or anything else? May 2, 2022 by Drew DeVault Nope. If the short answer leaves you wanting, keep reading. I must admit that this sentence from the Hare announcement may have caused some confusion: Hare is most similar to C, and almost all programs written in C can also be written in Hare. This is especially true in the context of the rising and competing compl

                                                                                  Will Hare replace C? Or Rust? Or Zig? Or anything else?
                                                                                • When Zig is safer and faster than Rust

                                                                                  3/7/2023 When Zig is safer and faster than Rust There are endless debates online about Rust vs. Zig, this post explores a side of the argument I don't think is mentioned enough. Intro / TLDRλ I was intrigued to learn that the Roc language rewrote their standard library from Rust to Zig. What made Zig the better option? They wrote that they were using a lot of unsafe Rust and it was getting in thei

                                                                                  新着記事