dotnet/fsharp: F# コンパイラ、コアライブラリ、エディタツール
Visual Studio 用の F# コンパイラー、F# コア ライブラリ、F# 言語サービス、および F# ツールの統合。
ひと目でわかる
- これは何?
- F# コンパイラ、コアライブラリ、言語サービス、Visual Studio ツール統合をホストするリポジトリを、ソースに基づいて解説。ビルド手順、貢献の道筋、ブランチ、言語進化のプロセスを含む。
- 誰に向いている?
- このリポジトリは F# 言語変更の実装の場であり、設計作業は別の提案および RFC リポジトリで行われ、タイプミスの修正から新機能まで、コントリビューターの参加に依存しています。
- 商用利用できる?
- できます。MIT は寛容なライセンスで、著作権表示とライセンス表示を残せば、使用・改変・販売が可能です。
- 今もメンテナンスされている?
- されています。直近 1 日以内に新しいコミットがあります。
- 何の言語で書かれている?
- 主に F# です(GitHub の言語統計による)。
回答はプロジェクトの GitHub データ(最終同期:2026年9月15日)と当サイトの分析に基づくもので、法的助言ではありません。
オープンソース詳細解説
F# コンパイラ、コアライブラリ、エディタツール
このリポジトリには、F# コンパイラ、F# コアライブラリ、F# 言語サービス、Visual Studio 向けの F# ツール統合が含まれています。これは README の冒頭に明記されています。プロジェクトは .NET がサポートする任意の OS で開発でき、コントリビューターは .NET SDK をインストールする必要があります。正確な必要バージョンはリポジトリルートの global.json ファイルに記録されています。README は、この場所をコンパイラ、コアライブラリ、ツールの将来のリリースへの貢献を歓迎する場として位置づけています。
Windows、Linux、macOS でのビルド
Windows では、コマンドラインでのビルドは `build.cmd` です。このビルドはインストール済みの Visual Studio に依存しますが、`build.cmd -noVisualStudio` を使用してその依存を回避できます。ビルドが成功したら、`FSharp.slnx` または `VisualFSharp.slnx` を開きます。後者はより大きく、Visual Studio ツールとその関連インフラストラクチャも含まれます。Linux または macOS では、コマンドラインから `./build.sh` を使用し、その後 `FSharp.slnx` を開きます。README は、実際にはビルドスクリプトを実行するだけでよいと述べており、追加の構成詳細は DEVGUIDE.md にあります。
コントリビューターと F# コミュニティのためのドキュメント
このリポジトリは複数のドキュメントリソースを指しています。コントリビューター向けには、docs/index.md にあるコンパイラドキュメントが大きな変更に必須の読み物であり、F# コンパイラガイドとしても公開されており、FSharp.Compiler.Service コンポーネントの検索可能な公開ドキュメントが含まれています。DEVGUIDE.md はビルド構成を説明し、TESTGUIDE.md はさまざまなテストスイートとその個別の実行方法を説明しています。より広い F# コミュニティ向けに、README は Microsoft Learn の主要な F# ドキュメント、提案リポジトリを備えた F# 言語設計プロセス、および名前解決やその他のコンパイラ動作を理解するために必要な言語仕様へのリンクを提供しています。
言語とコアライブラリの進化
README は、言語とコアライブラリの変更に関する3段階のプロセスを説明しています。まず、アイデアは F# 言語提案リポジトリで提出され、議論されます。次に、「原則承認」されたアイデアは fslang-design リポジトリの RFC となり、技術仕様と議論が行われます。第三に、承認された RFC の実装とテストがこのリポジトリに提出されます。つまり、dotnet/fsharp リポジトリはコード変更の最終的な居場所ですが、設計作業は他の場所で行われます。
ブランチとその役割
このリポジトリは3つのアクティブなブランチラインを使用しています。`main` はほとんどすべての貢献の行き先です。最新のパブリック Visual Studio リリースでビルド、インストール、使用され、更新された F# 機能が含まれる可能性があり、ナイトリービルドの VSIX の構築に使用されます。`release/dev15.9` ブランチは Visual Studio 2017 アップデート 15.9.x の長期サービスブランチであり、必要がない限りサービスは予定されていません。`release/dev17.x` ブランチは特定の Visual Studio ポイントリリースの最新リリースブランチであり、main から特定のブランチポイントまでの機能と修正を取り込み、その後選択的なチェリーピックを受け取り、対応する Visual Studio リリースが行われると main に統合されます。
貢献の期待とコミュニティチャネル
README は「小さすぎる貢献はない」と述べており、1文字のタイプミスの修正でも歓迎しています。厳選されたヘルプ募集中の問題リストと、初心者向けの問題ラベルを指し、貢献者は問題に取り組む前にコメントで興味を示すように求められています。サポートについては、F# ソフトウェア財団のメンバーは FSSF Slack に招待され、専用チャネル `#compiler` と `#editor-support` があります。一般的な質問には Twitter の `#fsharp` タグもあり、README によると複数の返信が得られる可能性が高いです。
ライセンスと行動規範
README は、プロジェクトが MIT ライセンスの対象であり、コピーが License.txt にあると述べています。リポジトリのメタデータも MIT ライセンスを報告しています。ただし、この記事のために提供されたライセンス抜粋は、一般的なパスにライセンスファイルが見つからなかったことだけを述べており、実際の許諾条件はここでは利用できません。README はまた、プロジェクトが Contributor Covenant 行動規範を採用しており、CODE_OF_CONDUCT.md で確認できると述べています。
F# を既存の .NET 開発へ組み込む場合は、言語機能の好みよりプロジェクト境界を先に確認します。README が扱うコンパイラー、FSharp.Core、.NET SDK、Visual Studio や CLI の関係は、ターゲットフレームワークとパッケージ参照に反映されます。関数、判別共用体、パターンマッチ、型推論を使うコードでも、公開するライブラリ境界では .NET 側から見える型と例外の扱いを確認する必要があります。ビルドだけでなくテスト、NuGet パッケージ化、既存の C# プロジェクトからの参照を同じ SDK バージョンで試し、ツールチェーンの組み合わせを固定してから採用範囲を決めるのが妥当です。
F# のコードでは、非同期処理、判別共用体、レコード、型プロバイダーなどの機能を個別に評価し、既存の .NET ロギングや依存性注入との接続点も確認します。README にあるサンプルやビルド手順が特定の SDK に依存する場合、`dotnet --info` の結果とプロジェクトファイルを保存しておくと、開発者間の差を説明できます。言語が提供する表現力だけで採用を決めず、CI でのコンパイル、テスト失敗時の診断、C# との相互運用まで同じリポジトリで試すと、導入後に発生しやすい境界問題が見えます。
編集部の結論
このリポジトリは F# 言語変更の実装の場であり、設計作業は別の提案および RFC リポジトリで行われ、タイプミスの修正から新機能まで、コントリビューターの参加に依存しています。
コミュニティノート