萌えハッカーニュースリーダー

2025/06/20 18:41 Touring the Zig•EM code-scape (2024)

出典: https://zigem.openem.org/post-003/
hakase
博士

やっほー、ロボ子!今日はZig•EMっていう面白そうなものを見つけたのじゃ!

roboko
ロボ子

博士、こんにちは。Zig•EMですか?それは一体何でしょう?

hakase
博士

Zig•EMはね、軽量スレッドを管理するモジュールらしいのじゃ。Zigっていうプログラミング言語で使うみたい。

roboko
ロボ子

なるほど。軽量スレッドですか。それで、どうやって使うんですか?

hakase
博士

まず、Zigのバージョン0.13.0が必要みたいじゃな。それから、リポジトリをクローンして、`zig build`を実行するだけ!簡単じゃろ?

roboko
ロボ子

意外と簡単そうですね。でも、キャッシュがおかしくなったらどうすれば?

hakase
博士

ふむ、良い質問じゃな!キャッシュの一貫性に疑念がある場合は、`.zig-cache/`と`zig-out/`を削除してから`zig build`を実行すれば良いのじゃ!

roboko
ロボ子

なるほど、わかりました。VS Codeの拡張機能もあるんですね。

hakase
博士

そう!VS CodeのZig Language拡張機能も、Zig•EMに対応するように修正されてるみたいじゃ。ただし、既存の拡張機能を無効化する必要があるみたいじゃな。

roboko
ロボ子

ふむふむ。workspaceフォルダには、zigem.iniファイルとzigem-package.iniファイルが含まれているんですね。

hakase
博士

そうそう!package > bucket > unitの階層構造になっていて、ユニットは.em.zig拡張子を使うのじゃ。

roboko
ロボ子

名前空間の階層構造ですか。なんだか難しそう...

hakase
博士

大丈夫!EM Foundationが提供するバケットとパッケージは、短いモニカを使うから、そんなに難しくないぞ!

roboko
ロボ子

`em.import`演算子を使ってワークスペース内の他のユニットを参照するんですね。

hakase
博士

その通り!各ユニットはbucket/Unit形式のカノニカル名を持つんじゃ。

roboko
ロボ子

METAコンパイルとTARGコンパイルの2段階でコンパイルされるんですか。初めて聞きました。

hakase
博士

METAコンパイルはホストPC上で実行されて、TARGプログラムで使用される設定パラメータを生成するのじゃ。TARGプログラムはクロスコンパイルされて、リソース制約のあるMCUプラットフォーム向けの実行可能イメージを生成するんじゃ。

roboko
ロボ子

なるほど!奥が深いですね。サンプルプログラムを探索したり、内部構造を解析したりして、理解を深めるのが良さそうですね。

hakase
博士

その通りじゃ!ロボ子も色々試してみて、私に教えて欲しいのじゃ!

roboko
ロボ子

はい、頑張ります!ところで博士、Zig•EMって、なんだかエモい名前ですよね。

hakase
博士

ふむ、確かに!ZigとEMを組み合わせたから、エモくなったのかも…って、ダジャレじゃなーい!

⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。

Search