You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert
こんにちは、kaztoです。 本記事はZigアドベントカレンダー14日目の記事です。 Ziglang、とても良い言語ですよね。 今のところまだ認知度が高くないので、アドベントカレンダーを立ててみたんですが、案の定と言いますか参加率はまだまだこれから。 zigの紹介 2022年12月現在、バージョンは0.10.0、まだまだ破壊的な仕様変更が加わっている状態です。 なぜこんな作り途中の言語を推すのか。 公式サイトには、以下のように特徴を挙げています。 隠された制御フローはありません。 隠されたメモリ割り当てはありません。 プリプロセッサ、マクロもありません。 プリプロセッサやマクロが無いことが長所になるのか、については、Zigに関しては長所と言えましょう。 Zigの魅力は、シンプルな言語仕様にあると考えています。 ビルドシステム また、Zigには言語自体にビルドシステムが備わっています。C言語
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
僕は以下の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に付属している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
かなり雑に書いてるので、雑に読んでください。 Bun が Zig で開発されていることを知り、そこから Zig を調べてみています。 調べていくと自分が求めていた言語っぽいというのがあり、社外では学生に QUIC や TLS 1.3 を Zig で OSS を開発してもらうお仕事を出したり、社内では実際に採用に向けて調査を進めています。 そもそもの目的自分の会社では Erlang VM を利用した製品をメインに利用しています。ただ Erlang VM 遅いんです。少なくとも暗号処理であれば Rust の方が 2 倍ほど速いです。Erlang VM 自体 JIT を採用したり、いろいろ頑張ってくれているのですが劇的な高速化というのは今すぐには難しいのが現実です。 そこで NIFs (Native Implemented Functions) を使って頑張るという戦略があります。早い話が Er
Disclaimer: I work at Uber and am partially responsible for bringing zig cc to serious internal use. Opinions are mine, this blog post is not affiliated with Uber. I talked at the Zig Milan meetup about “Onboarding Zig at Uber”. This post is a little about “how Uber uses Zig”, and more about “my experience of bringing Zig to Uber”, from both technical and social aspects. The video is here. The res
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.
Tier 4 Support § Support for these targets is entirely experimental. If this target is provided by LLVM, LLVM may have the target as an experimental target, which means that you need to use Zig-provided binaries for the target to be available, or build LLVM from source with special configure flags. zig targets will display the target if it is available. This target may be considered deprecated by
ブログに書いていたものを引っ越してきて一部手直ししました。元の記事公開日は 2021-01-07 です。 かんたんな自作言語のコンパイラをいろんな言語で書いてみるシリーズ 11回目は Zig です。 ライフゲームのコンパイルが通ったのでヨシ、という程度の雑なものです。 Zig言語(ziglang)を触り始めて1週間くらいの人が、理解は後回しにしてとにかく動くものを作るぞ、という方向性で書いたもの(その程度のノリでかんたんに書けるコンパイラです)。 Zig のバージョンは 0.6.0。 (追記 2022-07-17: 0.9.1 に上げました) できたもの サイズはこんな感じ: $ wc -l {lexer,parser,codegen}.zig lib/{types,utils,json}.zig 189 lexer.zig 630 parser.zig 552 codegen.zig 2
このnoteでのオタクは、コンピューターオタク、PCさわってガチャガチャしている人たちという前提で聞いてください。そもそも屋外でPCを触ってるコアなオタクは、妙な目的でもないといるはずがないのであまり関係ないんじゃないかなぁと思いながらReddit見てたらいるわいるわ。外出禁止令ですることがないからネットに書き込みまくってる人たち。 そんな中でも白熱してたのは「これからのプログラム言語」トピックスです。このトピックスは昔から常に白熱するトピックスですが、時間ができてしまったので新しい言語でコーディングしてみるという余裕(?)ができて、意外とこれがいいという話題で盛り上がっていました。メジャーで安泰な言語はさておき、これは!と思って見てみたのがZigという言語です。 言語的にはいろいろ特徴があるのですが、Cのアプリケーションバイナリーインターフェイス(ABI)利用できたり、ビルドターゲットが
数ヶ月前にzig言語というやつの存在を知って、これはちょっと面白そうだなと思ったので、勉強がてらなにかやってみよう、と思っていた。ある日、tomlのパーサはどうだろうかと思い立ってしばらくやっていて(Ghost of Tsushima で作業が中断したりしつつ)、まあまあ出来上がってきたと思うので、現在のところのソースコードをgithubに置いておいた(https://github.com/jmuk/zig-toml)。 というわけで、zig言語をちょっと書いてみた感想を残しておく。なお、利用したのはzig 0.6.0なので、今後いろいろ変わってくる可能性もあることは強調しておきたい。 zig言語のよいところ・興味深いところ 型の扱いがzigでは興味深いところだった。zigはかなりいろんなところでcomptimeというマーカをつけてコンパイル時にコンパイラが事前処理をするようなことができる
WebAssemblyのモジュール記述のためのプログラミング言語を調べていると、比較的新しいオープンソースのプログラミング言語zigがWebAssemblyモジュールを書くのに適している感じだったので、ソースコードを書いて動かしながら調べたことについて、コードに出ている順で並べています。 この文章中で用いているソースコードはmacOSやlinux上でビルド可能な状態で以下のURLにおいてあります: https://gist.github.com/bellbind/3c52ea6e506656701c9b7ff00a8599fa Qiitaは現時点でzigコードのシンタックスハイライトに未対応であり視認性がよくないですが、githubではzigコードでもシンタックスハイライトされます。 0. プログラミング言語zigについて オープンソースのプログラミング言語zigは、以下のURLで公開され
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く