**パラレルPerl – JIT付き自動並列化インタプリタ**

2026/03/18 20:59

**パラレルPerl – JIT付き自動並列化インタプリタ**

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

要約

Japanese Translation:

本記事は、AI が生成した Perl コードが実際のシステムを駆動できる方法について説明しています。著者は長年にわたって Perl と機械学習に取り組んできた経験を活かし、WHIP(Witty House Infrastructure Processor) と呼ばれる洗練されたホームオートメーションスタックを構築しました。WHIP は BME280、INA219、DALI、LoRa などの 115 を超えるセンサ/アクチュエータモジュールを制御し、CAN バス、Modbus TCP/RTU、DALI、MQTT、SNMP、I²C、1‑Wire Modbus など多くのプロトコルを実装しています。また、Victron VRM、Discord、Nextcloud、Proxmox、UniFi など 30 を超える外部サービスと統合されています。WHIP はオフグリッド住宅 Villa‑A(プラハ)と Villa‑B(ドイツ)で稼働しています。

著者は AI が Perl モジュールをプロトタイプし、最終的に本番ツールへ進化させることができると示しています。具体例として、PVGIS 変種、Modbus/CAN コマンドラインユーティリティ、熱損失シミュレーション、および STM32 ノード用ファームウェアがあります。AI により作成された CPAN プロジェクト SNMP::MIB::CompilerGrpc::FFI もありますが、メンテナンスは困難でした。

中核となるのは pperl で、完全に AI エージェントによって Rust で書かれた新しい Perl 5 インタープリターです。5.42 とのフル互換性を目指しつつ、XS や C バインディングなしで V8 レベルの性能を実現します。主な機能は次のとおりです:自動並列化(Rayon)、JIT コンパイル(Cranelift)、Auto‑FFI による直接 C 呼び出し、バイトコードキャッシュ(.plc ファイル)、そしてコールドスタートを排除する Emacs スタイルのデーモン/クライアントモデル。ベンチマークでは、JIT+Rayon を使用した場合にネストされたループ(Mandelbrot)で最大約 400 倍の速度向上が確認され、標準 Perl インタープリターと比べて起動時間も大幅に短縮されています。

本プロジェクトは perl.petamem.com で入手可能です。著者の Richard Jelinek(rj@petamem.com)はコミュニティによる協力を歓迎しています。今後の計画として、pperl を完全な 5.42 互換性へ拡張し、さらに AI が生成した CPAN モジュールをリリースし、大規模なオートメーションエコシステムとの統合を図る予定です。

本文

PerlでAI ― 30年の経験からAI駆動型Perlへ


メインストーリー → 詳細掘り下げ


1 | プロローグ

  • GPW 2016(ニュルンベルク):「KI: Wie testet man ein Hirn?」–10年前。
  • 「忍耐が必要だ、若きパダワン。」
  • Perlとは関係ないが、背景として重要。

秘密の事柄

  • 口にしない方が良いこともある。
  • 起こった出来事の約半分をここで紹介する。

2 | PV・エネルギーシステム

  • 設計・構築・自動化
  • Victronエコシステム: Perlによる監視と制御

参考資料

サイト規格
ニュルンベルク (S1)約24 kWp, 45 kWh, 80 %+ オフグリッド、フィードイン
プラハ (J2)40 kWp, 120 kWh, 100 % オフグリッド

Villa‑A

  • テクノクラットの家 – 2050年代仕様
  • 1400 m³ の暖房体積(700 t コンクリート熱質量)
  • ファイバー強化コンクリート、地熱、毛管天井マット
  • 完全ホームオートメーション、オフグリッドエネルギー
  • 40 kWp ソーラーパネル、120 kWh バッテリー

3 | システム & 自動化

ノードアーキテクチャ

  • STM32 MCU + FreeRTOS(1 Mbit/s CAN)– 自律型
  • ハブ: Raspberry Pi with CAN/IPゲートウェイ、Mojolicious (Perl)
  • サーバ: Perlによるオーケストレーション

センサー/アクチュエータ(115+モジュール)

種類
温度BME280, DS18x20, SHT3x, NTC
電力INA219, INA226, ACS712, ADC
照明DALI, WS281x, PWMディマー, SSR
制御PCF857x, MCP23017, リレー, GPIO
通信LoRa, Modbus RTU, 1‑Wire, SPI
ディスプレイSSD1306, ST7735
空気質SCD4x, SGP4x, PMS5003, SEN5x
その他AS3935, MLX90614, VL53L0x, HX711
  • Linux Kconfig に触発された依存解決器
  • 1ノードあたり約5モジュール → 153M+組み合わせ

Ganglion(ノード内ロジック)

  • IF–THENルール、タイマー、ローカル変数 → MCU用バイトコード
  • 例: 動きを検知 → 照明ON;キッチンで煙を検知 → 全館アラーム

4 | ハブ – パントヘオン

ハブ機能
Raijinエネルギー(Victron, BMS, MPPT, バッテリー)
LuciferDALI照明(4バス、シーン)
Bragiマルチルームオーディオ、音声、AIアシスト
Gaiaグリーンハウス、灌漑、水槽
Tyr
  • 単一障害点なし;各ドメインが独立運用

5 | SELV‑DALI – メイン電源無しでの照明

  • 安全低電圧(≤ 60 V DC)
  • バッテリ駆動チェーン:48 V → 24 V DC/DC → LED
  • DALIは16 V、すべてのスイッチ/センサーはSELV
  • インバータが故障しても照明は点灯

6 | プロトコル & 統合(WHIP)

プロトコル詳細
CAN bus1 Mbit
Modbus TCP/RTU21機能コード中17、869テスト、91 % 覆蓋率
DALIMQTT, SNMP, I²C, 1‑WireModbus
外部統合Victron VRM, MasterTherm, PVGIS, Discord, Nextcloud, Proxmox, UniFi 等
  • すべてハンドラはPerl(Mojolicious async I/O)

7 | 本番デプロイメント

Villa‑A (プラハ) – 完全オフグリッド

  • 40 kWp ソーラー、120 kWh LiFePO4、3× Multiplus‑II 10 kVA
  • MasterThermヒートポンプ、毛管天井暖房/冷却
  • 4バスに分散されたCANノードでDALI照明

Villa‑B (ドイツ) – 同一コンセプト、異なる設定


8 | PerlプロジェクトへのAI貢献

プロジェクト成果
PVGISクローン屋根カバレッジの改善
Modbus/CAN CLI & introspection
熱損失 / 急起動シミュレーション
FreeRTOS/libopencm3 ファームウェア(100+モジュール、テスト)
Discord, Reddit, Twitter, Kraken, Ollama, Proxmox, AWS, Azure, Nextcloud などのAPIエンドポイント

サイドプロジェクト

  • MIB Parser
    SNMP::MIB::Compiler
    (最高のMIBパーサー)
  • Grpc::FFI – FFI::Platypus を介した Perl 用 gRPC

9 | CPAN 状況

日付問題
2025‑09‑28アカウントが nologin に設定、モジュールの問い合わせに応答なし
2025‑10‑01フォローアップ、未回答
2025‑10‑06LinkedIn 経由で連絡、返信無し

10 | SNMP & MIB の入門

  • SNMP:ルーター・スイッチ・UPS・プリンタ等のデバイス監視/管理。
  • MIB:デバイス指標を定義するスキーマ。
  • ASN.1 で書かれた数千ものベンダー MIB が存在し、逸脱が多いためパースが困難。

SNMP::MIB::Compiler

パーサ言語失敗数合格率
pysmiPython29693.8 %
gosmiGo9198.1 %
oursPerl3999.2 %
  • 4,740 MIB → 301 修正、Go より52件少ない失敗

11 | Grpc::FFI

  • CPAN に機能的 gRPC ライブラリが無いため自作
  • FFI::Platypus を使い C API へバインディング
  • 326 テスト合格;メモリリーク・クラッシュなし
  • クロス言語(Perl ↔ Java/Go)動作確認済み
  • ストリーミング:ユニアリ、クライアント、サーバ、双方向
  • 約85 % 本番レディ;約43 ファイル

12 | Navigator / Orchestrator

  • AI が実行・文書化・反復;人間が戦略を定義。
  • Navigator が無いと AI は素晴らしいが孤立した成果物を作る。
  • AI が無いと Navigator に時間が取れない。

13 | pperl – ParallelPerl(PetaPerl)

概要

  • インタープリター:Perl 5 互換性(≈ 5.42)、V8レベルの性能。
  • Rust で実装;多くの AI エージェントが貢献。
  • Linux だけ、すべてのアーキテクチャ対応。
  • XS は無し;ネイティブ Rust 実装を統合。

スコープ & 状態

  • 22,000+ テスト;約61–400 失敗。
  • ベンチマーク:list_util 関数 – Perl 5 より最大3.9×高速化。

機能

機能説明
AutoparallelizationRayon データ並列化;
.par_iter()
.iter()
を置き換え。
JIT CompilationCranelift IR → ホットループ(内部・ネスト)でネイティブコード生成。
Auto‑FFIXS や Inline::C なしで任意の C ライブラリを呼び出せる。
Pre‑Compile (.plc)バイトコードキャッシュでほぼ即時起動。
DaemonizeEmacs スタイルデーモン/クライアント;共有アレーナ付きフォーク子プロセス。

ベンチマーク(抜粋)

  • Mandelbrot 1000×1000:
    • Perl 5 → 12,514 ms
    • pperl インタープリテッド → 163 ms
    • JIT + Rayon → 29 ms(約 431×高速)

14 | Auto‑FFI の詳細

  • レイヤー0 – Raw: 任意の
    .so
    dlopen
    /
    dlsym
    + libffi。
  • レイヤー1 – プレベーク:libc, libuuid 等、オーバーヘッドゼロ。
  • レイヤー2 – 発見:システムスキャン → 利用可能ライブラリのハッシュ。
use Peta::FFI qw(scan dlopen call);
my $libs = scan();
say scalar keys %$libs;  # ライブラリ数

if (exists $libs->{"libz.so.1"}) {
    my $z = dlopen("libz.so.1");
    say "zlib: ", call($z, "zlibVersion", "()p");
}

15 | バイトコードキャッシュ (.plc)

  • 一度コンパイル →
    .plc
    保存;次回はロード。
  • SHA‑256 + mtime/version による検証。
  • モジュール読み込みコストを約33–37 % 削減。

16 | デーモン化メカニズム

  • コマンド
    pperl --daemon script.pl
    (ウォームアップ)
  • クライアント接続 → fork → 子が実行 → 応答。
  • 起動 + コンパイルオーバーヘッドを排除;バイトコードキャッシュより高速。

17 | 今後の計画

  • GPU 統合(OpenCL/HIP/Vulkan/CUDA)。
  • 制限付きデバイス向け pperl‑mini。
  • STM32 等へターゲットした pperl‑compiler。

18 | pperl を使うタイミング

適切なケース

  • JIT / 自動並列化で恩恵を受けるワークロード。
  • ネイティブ Rust モジュールを利用するスクリプト。
  • 高速起動(
    --cache
    )。
  • セキュリティ(別コードベース → CVE 共有が少ない)。

未対応

  • 非常に大きく複雑なコードベースでエッジケースが多いもの。

長いスクリプトほどコーナーケースが増える傾向;コードを触れられない場合は Perl 5 を使用。


19 | 正確性事例研究

  • $
    (OFS)と
    $\
    (ORS)の扱いにバグがあったが修正。実務的影響は小さいものの、互換性へのコミットを示す。

20 | 終わりに

数十年にわたり Perl で AI を行ってきました。今こそ AI に Perl を任せる時です。

入手先

ありがとうございました。
リチャード・ジェレニク · rj@petamem.com
PetaMem s.r.o. · petamem.com


21 | psh – インタラクティブ Perl シェル

ls "-la";                    # サブルーチン呼び出し
cd "/tmp";                   # chdir ラッパー
ps "aux";                    # システムコマンド

# スクリプト力
for my $f (glob("*.log")) {
    if (-M $f > 7) {
        rm $f;
        say "cleaned $f";
    }
}

オブジェクトパイプ:データ構造を渡す、テキストではない。

ps() | grep { $_->{mem} > 100_000 } | sort { $b->{cpu} <=> $a->{cpu} };

PowerShell の哲学 + Perl のテキスト力 + pperl の JIT スピード。

同じ日のほかのニュース

一覧に戻る →

2026/03/21 6:03

**OpenCode – オープンソースAI コーディング エージェント**

## Japanese Translation: **改善された要約** OpenCodeは、プライバシーを最優先にしつつオープンソースで開発されたAIコーディングエージェントです。ターミナル、IDE、またはデスクトップアプリとしてスムーズに動作します。使用されるLLMに応じて自動的に適切なLanguage Server Protocol(LSP)をロードし、同一プロジェクト上で複数のエージェントを同時に起動できるようにします。セッションは簡単なリンクで共有でき、参照やデバッグに利用できます。OpenCodeはGitHub Copilot、ChatGPT Plus/Pro、およびModels.devを通じて75社以上の大規模言語モデルプロバイダー(ローカルモデルも含む)と統合しており、さらに**Zen**というコーディングエージェント向けに特別にテスト・ベンチマークされたAIモデルのキュレートセットを提供します。プロジェクトは120,000件以上のGitHubスター、800人の貢献者、10,000件以上のコミット数を誇り、毎月5百万社以上の開発者に利用されています。またコードやコンテキストデータを保存しないため、プライバシーセンシティブな環境にも適しています。新リリースや機能拡張について情報を受け取りたいユーザーはウェイトリストに登録できます。

2026/03/21 4:16

**Windows 品質への我々の約束**

## Japanese Translation: Microsoft は、ユーザーから報告されたタスクバーの混乱したオプション、Copilot エントリポイントのごちゃごちゃ、侵入的なアップデート、遅いファイルエクスプローラー、騒がしいウィジェット、分断された Insider Program などの課題に対処するため、Windows 11 のユーザビリティ・パフォーマンス・信頼性の一連の更新を展開しています。 主な変更点は次のとおりです: - **タスクバー**: 新しい再配置オプション(上部、左側、右側)とより小さなタスクバーで、パーソナライズ性が向上します。 - **Copilot**: スニッピングツール、フォト、ウィジェット、メモ帳のエントリポイントを削減し、有用な体験に焦点を当てることでアクセスを簡素化しました。 - **Windows Update**: コントロールが拡張されました—設定中にアップデートをスキップでき、長時間停止、再起動またはシャットダウン時にインストールせずに済み、自動再起動/通知の数が減ります。 - **ファイルエクスプローラー**: 起動速度向上、ちらつき軽減、ナビゲーション滑らか化、ファイルタスクパフォーマンスの信頼性向上です。 - **ウィジェット**: デフォルトが静かになり、外観コントロールが改善され、Discover フィードのパーソナライズが向上しました。 - **Insider Program**: チャネル定義を明確化し、機能アクセスを容易にし、ビルド品質を高め、フィードバック可視性とエンゲージメント機会を増やすことで簡素化されました。 - **Feedback Hub**: 提出速度の向上とコミュニティインタラクションのために大幅な再設計が行われました。 - **システムパフォーマンス目標**: Windows のリソース使用量を低減し、メモリフットプリントを削減、アプリケーション、ファイルエクスプローラー、WSL 全体で応答性を改善します。 - **信頼性イニシアチブ**: OSクラッシュ、ドライバー品質、Bluetooth/USB の安定性、カメラ/オーディオ接続、デバイス再起動の一貫性、および月1 回の単一再起動と一時停止オプションを対象にします。 - **Windows Hello**: 顔認証の信頼性向上、指紋サインイン速度の高速化、ROG Xbox Ally X のようなゲーム用ハンドヘルドデバイスでの PIN 設定のセキュリティ強化です。 - **Craft 改善**: スタート/タスクバーの信頼性向上、パーソナライズ拡張、デバイス設定を静かに、ウィジェットの賢さ向上、通知削減、タスクバー・スタート・ファイルエクスプローラー・設定間で一貫した検索機能。 Microsoft は実際のハードウェア上で検証/テストを深化させ、デフォルトのセキュリティ設定を引き上げ、Insider のフィードバックに依存して将来の Windows 11 リリースを導く予定です。その結果として、ユーザーと開発者双方に対し、より柔軟なインターフェイス、スムーズな更新、静かな通知、そして高い信頼性が実現します。

2026/03/21 6:42

**タイトル:** GLP‑1薬を中止すると心筋梗塞と脳卒中のリスクが急増 **主なポイント:** - GLP‑1受容体作動薬(GLP‑1 RA)をやめると、心筋梗塞・脳卒中のリスクが高まります。 - これらの薬を中止した患者は、継続している患者に比べて心血管イベントの発生率が増加する可能性があります。 - 本研究は、GLP‑1 RAを服用している患者の心血管安全性には、投与継続(薬剤遵守)が重要であることを示唆しています。

## Japanese Translation: (以下の文は、元の意味を正確に保持し、構造や専門用語もそのまま維持した日本語訳です。) **改訂された要約:** 研究によると、短期間であってもグルカゴン様ペプチド‑1(GLP‑1)薬を中断すると、米国退役軍人の2型糖尿病患者において心臓発作や脳卒中のリスクが増加し、継続使用ではそれらのリスクが低減することが示されました。研究者は33万3000人以上の退役軍人を3年間追跡調査しました:GLP‑1治療を2年間停止したグループは心血管リスクが22%増加し、決して中断しなかった患者は18%リスク減少、再開のみで12%の利益にとどまることが明らかになりました。治療が途切れた際には体重・炎症マーカー・血圧・コレステロールが悪化し、「代謝的ウィップラッシュ」と呼ばれる効果が観察されました。GLP‑1薬はもともと糖尿病のために開発されましたが、現在では腎臓・肝臓・心血管系・関節炎・認知症・依存症などのアウトカムにも有益です。ただし、新規使用者のおよそ半数が早期に中断しています。著者らは、服薬遵守と効果を別々に追跡すべきだと主張し、医療システムには長期的な継続利用を支援するプログラムの構築を求めています。この研究は *BMJ Medicine* にZiyad Al‑Aly(ワシントン大学)によって発表され、心血管保護のためにGLP‑1療法を持続させる重要性を強調しています。