Skip to content

コアの実装言語を C++ から Rust へ移行する #128

@PickledChair

Description

@PickledChair

内容

(以下の記述は必要に応じてアップデートしていきます。改善すべき点があればご指摘ください。)

現在、コアライブラリは C++ で記述されています。C++ は優れた言語ですが、ビルドツールなどを含め現代的でない部分が存在し、それにより開発の難しさを感じることがあります。ここで、開発言語として新たに Rust を採用することによって、開発体験が向上することが期待されるため、Rust による実装への移行を模索する意義があると考えられます。

この Issue では Rust による実装を段階的に進めるに当たって、実装の進め方や方針の議論、進捗の整理等を行うことができればと思います。

Pros 良くなる点

  • 基本的にメモリ安全・型安全になる
  • 非同期処理が書きやすくなる
    • C++20 と比較すると違いがないかも?
  • ビルド・パッケージ管理・テスト等が容易になる

Cons 悪くなる点

  • 学習コストの高い言語であることから、保守のための開発者を安定的に確保できるかどうか未知数な部分がある
    • Rust が言語的にフォーカスしている領域は C++ でも同様に難しい、ということはある
    • 今後の Rust 普及に伴って開発者増が期待できるかもしれない

その他、より詳しい Pros/Cons:
#128 (comment)

実現方法

作業は当面 rust branch で行われる予定です。

考えられる作業一覧:

また、並行して自動ビルド・テストも整備する:

最後に、新しいコアが期待通りに動くか確認して、移行作業完了としたいです(main branch へのマージ後に確認?)。

  • コアの動作確認(特に GPU を期待通りに使えるか)

その他

ビルド可能な最初の貢献は @qwerty2501 さんによって行われています (#126) ありがとうございます!

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions