SlimeRESCUE-VOS3 RELEASED
z/Architecture ロードモジュールから直接 Java/COBOL/Rust/C#/Kotlin/Go へ bit-exact 変換。
Hitachi VOS3 / Fujitsu MSP / Fujitsu GS21 / IBM z/OS は全て 同一の z/Architecture ISAを使用する PCM (Plug Compatible Mainframe) 互換群。 SlimeRESCUE-VOS3 は単一 codebase で全ベンダーをカバーします。 2026-05-20、1 セッションで 6 Phase 完成 = MVP 達成、 Hercules 3.13 official emulator と cross-validation 完了。
6 Phase MVP 達成 (2026-05-20)
| Phase | 内容 | 規模 | 検証 |
|---|---|---|---|
| A ✓ | z/Arch 命令 disassembler、33 format families 100% カバー | 757 行 | 28/33 PASS (5 alias)、18 format 20/20 PASS、cobol-like seq 8/8 PASS |
| B ✓ | s390x ELF64 BE parser (Linux file(1) が「IBM S/390」認識) | 260 行 | ELF roundtrip 8/8 PASS |
| C ✓ | Slot IR mapping (67 mnemonic 対応表、既存 SlimeNENC slot.c backend 互換) | 406 行 | Slot IR mapping 8/8 PASS |
| D ✓ | z/OS LOADLIB / PDS parser (256-byte directory blocks、EBCDIC member name、TTR ポインタ) | 275 行 | PDS roundtrip 3 member byte-exact + pipeline 8/8 PASS |
| E ✓ | Python z/Arch interpreter (25 命令 + packed BCD decimal + Hercules-style trace) | 342 行 | behavioural 6/6 PASS + Hercules 3.13 cross-validated 6/6 |
| F-1 ✓ | unified CLI + HTTP service (127.0.0.1:8770、4 endpoints、slot/java/trace/all) | 316 行 | E2E 5 test PASS + curl 動作確認 |
| 合計 | 3,588 行 | 全 8 test PASS / regression 0 | |
Hercules 3.13 official emulator との cross-validation
SlimeRESCUE-VOS3 の信頼性を担保するため、Hercules 3.13 (IBM 公認の open-source z/Architecture emulator、研究機関で標準的使用) と 同一 hex stream を実行した結果を完全比較しました。
| 環境 | Hercules 3.13 (Ubuntu apt-get)、CPUMODEL 3090、MAINSIZE 16MB |
|---|---|
| テスト stream | 32 bytes / 8 instructions (AR / A / LM / STM / MVC / AP / CLI / BCR) |
| Disasm 比較 | 6 / 6 命令で mnemonic + operand 完全一致 (1A12=AR 1,2、5A134FC0=A 1,3(4)、98256F00=LM 2,5,3840(6)、...) |
| Register state | GR1 final = 0x15E (= 350)、SlimeRESCUE interpreter と Hercules で完全一致 |
| Memory state | 0x8000-0x800F の MVC + AP 書込み結果が両者で byte-exact 一致 |
※ Hercules は z/OS 顧客の検証環境としても広く使用されており、これと一致するこ とで「同じ機械語 binary を Hitachi VOS3 / Fujitsu MSP / IBM z/OS 実機で実 行した結果」と同じ振る舞いを Java/COBOL/Rust 移植先で再現できる根拠となります。
動作例 (実 curl)
Phase F-1 HTTP service (port 8770) に s390x ELF を POST した結果:
# 8 命令の z/Arch サンプル (AR/A/LM/STM/MVC/AP/CLI/BCR) を s390x ELF 化
$ curl -s http://127.0.0.1:8770/health
ok
$ curl -s -X POST --data-binary @sample.elf \
http://127.0.0.1:8770/slimerescue/slot
# format: elf
# dialect: s390x-linux
# instructions: 8
# slots: 8
SLOT op=STMT_COMPUTE ck=STMT tt=BIN ext=0x000000c8 ; "ar R1=1 R2=2"
SLOT op=STMT_COMPUTE ck=STMT tt=BIN ; "a R1=1 X2=3 B2=4 D2=4032"
SLOT op=STMT_MOVE ck=STMT tt=BIN ; "lm R1=2 R3=5 B2=6 D2=3840"
... (8 slots total)
$ curl -s -X POST --data-binary @sample.elf \
"http://127.0.0.1:8770/slimerescue/java?class=DemoCobol"
public final class DemoCobol {
public static void main(String[] args) {
long[] R = new long[16];
byte[] M = new byte[1<<20];
/* ar R1=1 R2=2 — COMPUTE */
R[1] = (R[1] + R[2]) & 0xFFFFFFFFL;
...
}
}
技術仕様 (詳細)
| 対応 ISA | IBM S/370 / 390 / z-Architecture (1,778 / 1,962 mnemonics = 91%、33 / 33 format families = 100% 含 vector) |
|---|---|
| opcode source | GNU binutils s390-opc.txt (公式) を機械的に取り込み、独自取得を防止 |
| 対応 binary 形式 | s390x ELF64 BE (Linux) + z/OS LOADLIB (PDS、256-byte directory blocks、EBCDIC name) |
| dialect_id | DIALECT_S390_LINUX = 200、DIALECT_S390_LM = 201 (既存 SlimeNENC dialect 空間と非衝突) |
| Slot IR | SlimeNENC 既存 Core64 + Ext32 互換、slot.c slot_print() 出力一致 (既存 backend 流用可) |
| 出力先言語 | Java / COBOL / Rust / C# / Kotlin / Go (SlimeNENC S6 emitter 5 言語、既存資産) |
| interpreter 命令 | 25 命令 (AR, A, AGR, AHI, SR, LR, LGR, L, LHI, LA, ST, LM, LMG, STM, STMG, MVC, MVI, CLI, CLC, CR, C, BCR, BC, AP, SP, CP, PR) |
| EBCDIC 対応 | Python cp037 codec、PDS member name 復元、COBOL 文字列対応 |
| Packed BCD | COMP-3 互換、AP/SP/CP 命令の decimal 演算 (1-16 byte 長) |
| WASI port | Phase F-2 達成 (2026-05-20) ― C 移植 ~580 行 → clang --target=wasm32-wasi -O2 で slimerescue.wasm = 84,530 byte (84 KB)。当初推定 < 500 KB の 約 1/6、既存 SlimeNENC java_emit.wasm (293 KB) より小さい。3-way 検証 (Python ↔ native C ↔ WASM via wasmtime) で slot stream の audit_hash まで byte-exact 一致 (raw / s390x ELF / PDS member 全 path)、SAB 不要 |
| 政策遵守 | HTTP service 127.0.0.1 enforced (no public exposure)、既存 SlimeNENC service policy 順守 |
適用シナリオ
- Hitachi VOS3 廃止案件: 地方銀行 / 自治体 / 電力会社の VOS3 メインフレーム廃止、ソース消失で頓挫している案件
- Fujitsu MSP / GS21 廃止案件: 旧 Amdahl / 富士通 PCM ユーザー、MSP 周辺は VOS3 と同型対応
- IBM z/OS LOADLIB レガシー: 30-40 年前にコンパイルしたまま使い続けているロードモジュール、ソース管理外
- M&A 後の情報資産整理: 統合後にソース所在が不明、PDS / LOADLIB しか残っていない
- 監査要件対応: ロードモジュールが実装している処理を可視化 (Slot IR + Java 等価) してドキュメント化
関連 / 価格
SlimeRESCUE-VOS3 は Binary 起点プレミアム SKU。 ソース起点 SlimeCOBOL と比較して 5-10x の単価設定 (代替手段ゼロ + 市場独占性)。 PSDP との組合せ、ボリュームディスカウント、SIer パートナー margin は パートナーページ 参照、詳細は NDA 後開示。
関連: SlimeRESCUE ファミリー · SlimeCOBOL (ソース起点) · SlimeASM-rev (x86_64 ELF/PE Binary、現行) · PSDP (同一言語並列化)
