並び順

ブックマーク数

期間指定

  • から
  • まで

1 - 40 件 / 119件

新着順 人気順

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

zigに関するエントリは119件あります。 programminglanguageC などが関連タグです。 人気エントリには 『【株式会社ZIG】Mechuの個人情報流出の経緯とZIGの隠蔽工作について【流星群プロジェクト】|ゆき』などがあります。
  • 【株式会社ZIG】Mechuの個人情報流出の経緯とZIGの隠蔽工作について【流星群プロジェクト】|ゆき

    ①個人情報流出にZIGより早く気付いた経緯 6/10 mechuの話をリスナー友達と共にdiscordにて会話中の出来事 メンテナンス後にrevちゃんのルームが消えていることに気付く。 外部VTuberの参加予定があったもののトラブルが発生し遅れているアナウンスもあった事で面白半分にソースを見てみようという流れになる。 ソースの見方についてですがブラウザ上で右クリックするとページのソースを表示と出てくるのでそれをクリックするだけというごく簡単なものです。 通話メンバーの一人がVTuberのメールアドレスが表示されていることに気付き、さらにpasswordの記載を見つける。 まずいのではと感じたので運営に報告するために他のページのソースも調査する。 管理者用ページがあるはずだという見立てよりURLにadminを追加したところ管理者用ログインページを偶然発見。 管理者用ログインページのソースを

      【株式会社ZIG】Mechuの個人情報流出の経緯とZIGの隠蔽工作について【流星群プロジェクト】|ゆき
    • 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 で簡単な 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 パーサを書いてみた。
                    • 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 言語のファーストインプレッション
                      • 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の紹介
                          • オープンソースプログラミング言語zigまとめ - Qiita

                            WebAssemblyのモジュール記述のためのプログラミング言語を調べていると、比較的新しいオープンソースのプログラミング言語zigがWebAssemblyモジュールを書くのに適している感じだったので、ソースコードを書いて動かしながら調べたことについて、コードに出ている順で並べています。 この文章中で用いているソースコードはmacOSやlinux上でビルド可能な状態で以下のURLにおいてあります: https://gist.github.com/bellbind/3c52ea6e506656701c9b7ff00a8599fa Qiitaは現時点でzigコードのシンタックスハイライトに未対応であり視認性がよくないですが、githubではzigコードでもシンタックスハイライトされます。 0. プログラミング言語zigについて オープンソースのプログラミング言語zigは、以下のURLで公開され

                              オープンソースプログラミング言語zigまとめ - Qiita
                            • 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](非公式なものは複数存在する) 私が考えたキャッチコピー 「C言語が誕生したのは1972年。Zig言語はそれを2020年代の知見で再構成するもの。50年分の進化!!」 "C but with the problems fixed" 原作者 Andrew Kelly 特徴 ヘッダファイルが無い。プリプロセッサも無い。例外も無い。ガ

                                      5分でざっと理解するZig言語
                                    • Zigソフトウェア財団とZenプログラミング言語に関する声明 ⚡ Zig Programming Language

                                      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ソフトウェア財団とZenプログラミング言語に関する声明Zigソフトウェア財団は、Zigの開発者アンドリュー・ケリーによって創設された501(c)(3)非営利組織です。本財団はZigプログラミング言語開発のサポートと優れたグローバルコミュニティの育成を目的としています。 対してZenはコネクトフリー社によって保守されているZigのクローズドソースフォークです。コネクトフリー社は最近Zenコンパイラのためのライセンスモデルを発表し、ソフトウェア開発者は自分で作成したコードの

                                      • “しょうもないうっかり”を許さない、静的型付けの言語 コーディングミスを未然に防ぐ「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言語のドキュメントを見て「なるほど!」と思ったところ

                                            前回の続き。 ちょっと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

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

                                                      [全編無料] 他言語習得者がとりあえず使えるようになるZig
                                                    • 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言語の一風変わった算術演算子
                                                            • 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
                                                              • 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

                                                                  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 zig cc sub-command is available, and it supports the same

                                                                  • 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」を作っている
                                                                        • 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?
                                                                            • GoのWasmランタイム上でZigで作ったWasmモジュールを動かす - knqyf263's blog

                                                                              Zigのコミッタの方から有益なフィードバックを頂いたり、Wasmランタイムのメンテナからコメントしてもらったり、Twitterでプロ開発者に助けてもらったり、と良い話が多かったのでそのへんの話も含めつつメモとして残しておきます。 最初に断っておきますがWasmにもZigにも特に詳しくないです。 概要 実装 GoのWasmランタイム TinyGoのExample ランタイムの初期化 関数の実行 別の渡し方 Zigの実装 malloc free ptrToString stringToPtr 呼び出し側 サンプル まとめ 概要 自分の開発しているOSSでWebAssemblyによるプラグイン機能に対応したのですが*1、Wasmは仕様が小さく関数の引数や戻り値もi32/i64/f32/f64だけで頑張るみたいな世界なので直接ユーザに生のWasm用コードを書いてもらうのは利便性の面で厳しいです。*

                                                                                GoのWasmランタイム上でZigで作ったWasmモジュールを動かす - knqyf263's blog
                                                                              • ごきげんよう、Zenへようこそ | Reduce your stress with the C language

                                                                                ごきげんよう、Zenへようこそ Reduce your stress with the C language. The first step to writing perfect software is Zen™ 今すぐダウンロード(無料) Zen を勉強し始める Be, Write and Think in Zen The word Zen has many meanings in the Japanese language. The Zen language focuses on these three meanings.

                                                                                  ごきげんよう、Zenへようこそ | Reduce your stress with the C language
                                                                                • CからZigに書き直して激遅になったと思ったら最適化オプションの変更で改善した話

                                                                                  メモとして残します。 MJPEGを入力してJPEGに切り出すプログラム ChatGPT-4 に作らせました。 USBカメラから入力された生のmjpegの映像データを標準入力から受けて、jpegの静止画に切り出してファイルに保存するプログラムをC言語で書いてください。書き出すファイル名はout%03d.jpg という感じでフレーム番号を含めてください。ソースコード内のコメントは英語で書いてください。 最初のものはffmpegやらたくさん外部のライブラリに依存するコードを出してきたので、もっとシンプルなやつにしてくれとお願いしました。できたものはこれ。[1] #include <stdio.h> #include <fcntl.h> #include <unistd.h> #define BUF_SIZE 1024 #define OUTPUT_FILENAME_PATTERN "out%03

                                                                                    CからZigに書き直して激遅になったと思ったら最適化オプションの変更で改善した話

                                                                                  新着記事