**Mruby:組込システム向け Ruby**

2025/12/22 14:00

**Mruby:組込システム向け Ruby**

RSS: https://news.ycombinator.com/rss

要約

Japanese Translation:

mrubyは、Ruby 3.xの構文(パターンマッチングを除く)に大部分従い、ISO標準の一部に準拠した軽量なRuby実装です。アプリケーションへ埋め込み可能で、インタープリタ(

mruby
)、対話型シェル(
mirb
)、Cソースを生成するコンパイラ(
mrbc
)およびテストハーネス(
mrbtest
)を提供します。

安定版3.4.0は公式のmruby GitHubリポジトリで公開されており、最新開発スナップショットは

github.com/mruby/mruby
からダウンロードまたはクローンできます。また、ruby‑install、ruby‑build、rvmなどのツールを使用してインストールすることも可能です。

本プロジェクトは、日本経済産業省の地域イノベーション創出R&Dプログラムによりスポンサーシップを受けています。ドキュメントはRuby API用にYARD、C API用にはDoxygenとGraphvizで生成され(

rake view_api
/
rake view_capi
経由)、作成されています。

拡張機能はmrbgemsという軽量パッケージマネージャーを通じて管理されます。ガイドラインは

mrbgems.md
に記載され、例は
examples/mrbgems/
にあります。メールリストはなく、issueや貢献はGitHubのみで処理されます。ライセンスはMITです。デフォルトの著作権者は「mruby developers」と設定してコンプライアンスを簡素化していますが、寄稿者は著作権を保持しつつプロジェクトに対して非独占的なMIT権利を付与します。

ホームページは https://mruby.org です。

本文

目次

  • mrubyとは何か
  • mrubyの入手方法
  • mruby公式ホームページ
  • メーリングリストについて
  • コンパイル、テスト、およびインストール(mrubyとgem)
  • ドキュメントのビルド
  • mruby(mrbgems)のカスタマイズ方法
  • 文書索引
  • ライセンス
  • ライセンスに関する注意事項
  • 参加方法
  • Star History
  • コントリビューター

mrubyとは何か

mruby
は、ISO規格の一部を満たしつつ Ruby 3.x の多くの最新機能を備えた軽量な Ruby 実装です。パターンマッチング以外は Ruby 3.x と構文が互換性があります。

アプリケーションに

mruby
をリンク・埋め込みすることができます。インタープリタプログラム(
mruby
)と対話型シェル(
mirb
)を例として提供しています。また、コンパイラ(
mrbc
)を使って Ruby プログラムをバイトコードに変換することも可能です。これらのツールはすべて
bin/
ディレクトリにあります。
mrbc
はコンパイル済みバイトコードを C ソースファイルとして出力できます;例は
test/
配下の
mrbtest
プログラムをご覧ください。

本プロジェクトは、日本経済産業省の地域イノベーション創造研究開発プログラムにより支援されています。

mrubyの入手方法

安定版(例:3.4.0)を公式 GitHub リポジトリからダウンロードするか、trunk をクローンします。

git clone https://github.com/mruby/mruby.git

または

ruby-install
ruby-build
rvm
でインストール・コンパイルできます。
最新の開発版は次の URL から入手可能です:https://github.com/mruby/mruby/zipball/master

mruby公式ホームページ

https://mruby.org

メーリングリストについて

メーリングリストは存在せず、代わりに GitHub Issues をご利用ください。

コンパイル、テスト、およびインストール(mrubyとgem)

最も簡単な手順としては次を実行します。

# (詳細は `compile.md` を参照)

完全な手順については

compile.md
をご覧ください。

ドキュメントのビルド

以下の2種類のドキュメントがあります。

  • API – YARD で生成
  • C API – Doxygen と Graphviz で生成

両方をビルドするには:

rake build_api
rake build_capi

ローカルで閲覧したい場合は:

rake view_api
rake view_capi

mruby(mrbgems)のカスタマイズ方法

mruby
には C および Ruby で拡張を作成するためのパッケージマネージャー mrbgems が付属しています。
設定方法は
mrbgems.md
を参照してください。サンプルコードは
examples/mrbgems/
にあります。

文書索引

  • mruby の制限について
  • コンパイルについて
  • mrdb
    コマンドを使ったデバッガについて
  • GC アリーナについて
  • mruby ディレクトリ構成について
  • libmruby とのリンクについて
  • メモリアロケータのカスタマイズについて
  • ビルド時設定について
  • ビルド時ライブラリマネージャについて
  • シンボルについて
  • 実装詳細 / 値の Box 化
  • 実装詳細 / mruby 仮想機械命令

ライセンス

mruby
は MIT ライセンスで配布されています。

ライセンスに関する注意事項

mruby
が MIT ライセンスを採用した理由は、その寛容性と組み込みシステム向けの適合性です。本ライセンスでは、マニュアル内に著作権表示およびライセンス情報を掲載することが求められます。この要件を簡素化するため、ドキュメント上でデフォルトの著作権保持者として「mruby developers」を使用しています。

貢献者は自身の著作権(

AUTHORS
に記載)を保持します。別のライセンスでコードを配布したい場合は、当方までご連絡ください。

参加方法

コントリビューションガイドラインに従い、GitHub リポジトリへプルリクエストを送付してください。貢献することで、あなたのコードに対して非独占的な MIT 権利が付与されます。

Star History

(スター数推移チャートのプレースホルダー)

コントリビューター

(コントリビュータ一覧)

同じ日のほかのニュース

一覧に戻る →

2025/12/28 5:15

**エンターテインメントでのコミュニケーション喪失の理由** 近年、観客がエンターテインメントに関わる形態は劇的に変化しました。 - **デジタル分散**:コンテンツは無数のプラットフォームに拡散され、クリエイターが統一したオーディエンスへ到達しにくくなっています。 - **アルゴリズムによるゲートキーピング**:推奨システムは深みよりもクリックベイトを優先し、アーティストとファンの間で意味ある対話が薄れています。 - **収益化圧力**:広告収入モデルはプロデューサーにセンセーション志向を促し、思慮深い物語よりも衝撃的な内容へ傾斜させます。 これらの要因が重なり合い、かつてクリエイターと観客が直接交流できたコメント欄・ライブチャット・ファンフォーラムなどの伝統的コミュニケーション手段を侵食しています。

## Japanese Translation: (incorporating all key points):** > 2025年12月15日のプルームのブログ投稿では、Pixelfed が Fediverse 実装からメッセージ配信を削除したことを批判し、信頼できる通信はあらゆるソーシャルプロトコルの基本機能であるべきだと主張しています。著者は Pixelfed の創設者 Dansup を引用し、ActivityPub は保証されたメッセージングではなくコンテンツ消費を目的としていると述べ、また Manuel Moreale もプロトコルが通信の信頼性を確保するためではなくプラットフォーム構築のために設計されていたと指摘しています。 > > プルームは、多くの Fediverse ユーザーが Mastodon と Pixelfed のアカウントを別々に保持している点を指摘し、これは大手ソーシャルメディア独占企業によって推奨される「一つのプラットフォーム、一つのアカウント」というマインドセットを反映しています。また、doomscrolling 中に人々が閲覧したコンテンツのほとんどを忘れてしまうという研究結果を挙げ、信頼できる通信としてのソーシャルメディアの有用性を疑問視しています。 > > 著者はメールが非同期媒体として衰退していることを嘆き、自身の Inbox 0 とワンタイムアドレス使用経験を挙げ、現代の「退屈」プロトコル(メール、RSS、XMPP)とエンターテインメント重視のプラットフォームが依存症や収益性を推進していることを対比しています。 > > Pixelfed は近々「ドロップなし」のオプションテキストメッセージを提供する予定ですが、プルームは読者に対し、Offpunk や Gemini などのオフラインファーストな代替手段で簡潔かつ信頼できる通信を検討するよう促しています。彼は最後に、興味があるユーザーに対して、シンプルで非商業的なコミュニケーション専用のメール、RSS、および Gemini コミュニティ「保護されたリザーブ」に参加することを勧めています。

2025/12/28 2:05

GPGの実行に失敗しました。

## Japanese Translation: **要約:** 本書は、GnuPG およびその他の OpenPGP ツールにいくつかの重大なセキュリティ脆弱性が発見されたことを警告しています。これらの欠陥により、攻撃者はデジタル署名を偽造したり、隠されたプレーンテキストを復元したり、検出されずに悪意あるサブキーをキーリングに追加したりできるようになります。主な問題点は次のとおりです。 * 切離型 PGP 署名へのプレーンテキスト攻撃で、クリアテキスト署名を切り捨てることで偽造署名が可能になる。 * リテラルデータにおけるパスセパレータの不適切な処理により、ディレクトリトラバーサルとファイル上書きが実行できる。 * 暗号化マレイビリティチェックの誤った適用で、メッセージ内容が漏洩する可能性がある。 * ASCII アーマー解析における脆弱性がメモリ破壊を引き起こす。 * MiniSign が信頼コメントを受け入れることで注入攻撃が許容される。 * ダッシュでエスケープされていないヘッダーの誤処理により、クリアテキスト署名の偽造が可能になる。 * OpenPGP クリアテキスト署名フレームワークへのフォーマット混乱攻撃と radix64 行切り捨てがポリグロット攻撃を生むことがある。 * キー署名検証中に SHA‑1 へダウングレードするパスがトリガーされ、整合性チェックが弱体化する。 これらの問題を修正しない場合、GnuPG を安全通信、コード署名、文書認証に依存しているユーザーは脅威にさらされます。報告書では、検証ロジックの更新とパス処理の厳格化によって OpenPGP 実装への信頼を回復するよう促しています。

2025/12/28 3:22

ウィンドウズ 2(Apricot PC / Xi 用)

## Japanese Translation: ## Summary: 著者は、古いApricot PCにWindows 2を成功裏に導入しました。この実現にはカスタムドライバの作成と機械のハードウェア制限を克服するためのRAM拡張ボードが必要でした。Microsoft DDKでスタブドライバを書き、WIN100.BIN/OVLからHerculesビデオコードをパッチし、互換性のないWindows 1用ドライバをApricotのIntel 8086 CPUと9インチモノクロディスプレイに適した新しいSYSTEM.DRVで置き換えました。プロジェクトには、著者の婚約者が設計したRAMアップグレードも含まれ、Windows 2のメモリ要件を満たしました。 この成果は、1987年にWindows 1をポートした以前の取り組み(マージドライバを使用していたが新機能の完全サポートがなかった)を踏襲しています。現在、Windows 2が稼働することで、Word、Excel、PC Paintbrushなどのアプリケーションをレガシー硬件上で利用できるようになり、古いシステムでも適度なアップグレードで再活性化できることを示しています。著者はMastodonスレッドでフィードバックを歓迎し、リトロコンピューティングコミュニティ内でさらなる改善や議論が行われる可能性を示唆しています。 ## Summary Skeleton **What the text is mainly trying to say (main message)** 著者はWindows 2を古いApricot PCにポートし、カスタムドライバとRAM拡張ボードでハードウェア制限を克服しました。 **Evidence / reasoning (why this is said)** - 著者はMicrosoft DDKを使ってスタブドライバを書き、WIN100.BIN/OVLからHerculesビデオコードをパッチしました。 - Windows 1のドライバが互換性がなかったため、新しいSYSTEM.DRVを実装しました。 - ポートには著者の婚約者が設計したRAM拡張が必要でした。 **Related cases / background (context, past events, surrounding info)** - Apricot PCはIntel 8086と9インチモノクロ画面でVGAグラフィックスを持たなかった。 - Windows 1は1987年にApricotへポートされ、ブートファイルにはマージドライバが含まれていた。 - 以前の試みでは高速起動WIN100.BIN/OVLに依存していたが、完全なドライバサポートは欠如していた。 **What may happen next (future developments / projections written in the text)** 著者はMastodonスレッドでコメントを募集し、貢献者への感謝と共に継続的な議論やさらに微調整の可能性を示唆しています。 **What impacts this could have (users / companies / industry)** - レガシー硬件上でWord、Excel、PC PaintbrushなどのモダンWindowsアプリケーションが動作できるようになる。 - 最小限のハードウェアアップグレードでレガシーシステムを復活させる方法を示し、リトロコンピューティング愛好家に教育的価値を提供する。