SlimePython ― やさしい入門
ひとことで:あなたが書いた Python を、まったく同じ結果を出す Rust に変換するツールです。「だいたい同じ」ではなく、出力が1ビットまで完全に一致することを SHA-256(ハッシュ)で証明します。
あなたが書いた Python を、まったく同じ結果を出す Rust に変換するツール。出力が 1 ビットまで一致することを SHA-256 で証明。きれいに書き直す必要はなく、動的な部分は安全な Python サンドボックスでそのまま動かします。
Python を手で Rust に書き直すと挙動がズレますが、出力が SHA-256 で 1 ビット一致する Rust を生成。動的部分は CPython Isolate に委譲(固定ランタイムで 95-99%)、真の非決定性は明示 reject。PoC 40/40 bit-exact 実証済。
全 Python を Rust 化せず、静的核→純 Rust(100% bit-exact)/ 動的→決定論 CPython Isolate / 非決定性→reject の Hybrid Bit-Exact Isolate。「意味を理解しない、構造を転写する」を動的領域へ拡張 ― CPython 自身に意味を生成させる。
ソースを構造として Slot IR へ射影。動的領域は CPython を pin(PYTHONHASHSEED=0・固定 seed/clock・libm pin)した決定論 Isolate に委譲し canonical encoding で境界接続。AI 罠 17 回避ポリシー下、100% は静的領域にのみ約束。
📋 「このレベルで AI に質問」= 選んだ解像度に合った指示つきで、このページの解説をコピーします。お手元の AI(Claude · GPT · Gemini · Grok 等)に貼れば、その目線でさらに深掘りできます。
なぜうれしいの?
- Python は書きやすい。でも配布・速度・安全性では Rust が強い。
- ふつう「Python を Rust に書き直す」と、本当に同じ動きか不安になる。
- SlimePython は出力が1ビットまで一致することをハッシュで示すので、「だいたい合ってる」の確認作業がいらない。
かんたんな例
たとえば、こんな普通の Python:
def greet(name):
return f"Hello, {name}!"
print(greet("World"))
これを変換した Rust も、実行すると Hello, World! をまったく同じバイト列で出します。同じ入力なら Python と Rust の出力ハッシュが一致 ― それが「証明できた」という意味です。
「私のコード、動的でぐちゃぐちゃだけど…」
大丈夫。きれいに書き直す必要はありません。
- きれいに変換できる部分 → そのまま Rust になります。
- 動的でトリッキーな部分(動的な属性アクセス、書き換え、
evalなど)→ 安全な Python サンドボックスの中でそのまま動かし、その結果だけを固定します。
正直に
私たちは「理論上 100%」より 「実際に使って生産性が上がる」ことを大事にしています。
もっと知りたくなったら
SlimePython は SlimeNENC 構造的トランスレーション・ファミリーの「モダン言語」メンバーです(レガシー側は COBOL / JCL / RPG など)。
