|
| 1 | +<!DOCTYPE html> |
| 2 | +<html lang="ja"> |
| 3 | + <head> |
| 4 | + <meta charset="utf-8"> |
| 5 | + <title>開発者用メモ |
| 6 | +</title> |
| 7 | + <meta name="viewport" content="width=device-width, initial-scale=1.0"> |
| 8 | + <meta name="description" content="F# compiler services for creating IDE tools, language extensions and for F# embedding"> |
| 9 | + <meta name="author" content="Microsoft Corporation, Dave Thomas, Anh-Dung Phan, Tomas Petricek"> |
| 10 | + |
| 11 | + <script src="https://code.jquery.com/jquery-1.8.0.js"></script> |
| 12 | + <script src="https://code.jquery.com/ui/1.8.23/jquery-ui.js"></script> |
| 13 | + <script src="https://netdna.bootstrapcdn.com/twitter-bootstrap/2.2.1/js/bootstrap.min.js"></script> |
| 14 | + <link href="https://netdna.bootstrapcdn.com/twitter-bootstrap/2.2.1/css/bootstrap-combined.min.css" rel="stylesheet"> |
| 15 | + |
| 16 | + <link type="text/css" rel="stylesheet" href="./../content/style.ja.css" /> |
| 17 | + <link type="text/css" rel="stylesheet" href="./../content/fcs.css" /> |
| 18 | + <script type="text/javascript" src="./../content/tips.js"></script> |
| 19 | + <!-- HTML5 shim, for IE6-8 support of HTML5 elements --> |
| 20 | + <!--[if lt IE 9]> |
| 21 | + <script src="https://html5shim.googlecode.com/svn/trunk/html5.js"></script> |
| 22 | + <![endif]--> |
| 23 | + </head> |
| 24 | + <body> |
| 25 | + <div class="container"> |
| 26 | + <div class="masthead"> |
| 27 | + <ul class="nav nav-pills pull-right"> |
| 28 | + <li><a href="https://fsharp.org">fsharp.org</a></li> |
| 29 | + <li><a href="https://github.com/fsharp/FSharp.Compiler.Service">github page</a></li> |
| 30 | + </ul> |
| 31 | + <h3 class="muted">F# Compiler Services</h3> |
| 32 | + </div> |
| 33 | + <hr /> |
| 34 | + <div class="row"> |
| 35 | + <div class="span9" id="main"> |
| 36 | + <h1><a name="開発者用メモ" class="anchor" href="#開発者用メモ">開発者用メモ</a></h1> |
| 37 | +<p>F#コンパイラの修正版クローンではクライアントの編集機能やF#コンパイラの埋め込み、 |
| 38 | +F# Interactiveをサービスとして動作させるための機能が追加されています。</p> |
| 39 | +<h2><a name="コンポーネント" class="anchor" href="#コンポーネント">コンポーネント</a></h2> |
| 40 | +<p>まず <code>FSharp.Compiler.Service.dll</code> というコンポーネントがあります。 |
| 41 | +このコンポーネントにはリファクタリングやその他の編集ツールが完全なF# ASTやパーサ機能を利用できるように |
| 42 | +可視性を変更するというマイナーな変更だけが加えられています。 |
| 43 | +主な狙いとしては、メインコンパイラの安定版かつドキュメントが備えられたフォークを用意することにより、 |
| 44 | +このコンポーネントにある共通コードを様々なツールで共有できるようにすることです。</p> |
| 45 | +<p>2つ目のコンポーネントはF# Interactiveをサービスとして組み込めるようにするためのもので、 |
| 46 | +<code>fsi.exe</code> のソースコードに多数の変更が加えられており、 |
| 47 | +<code>EvalExpression</code> や <code>EvalInteraction</code> といった関数が追加されています。</p> |
| 48 | +<p>このレポジトリは以下の点を除けば 'fsharp' と <strong>同一</strong> です:</p> |
| 49 | +<ul> |
| 50 | +<li> |
| 51 | +<p><code>FSharp.Compiler.Service.dll</code> のビルド、特に以下の点に関する変更:</p> |
| 52 | +<ul> |
| 53 | +<li>アセンブリ名の変更</li> |
| 54 | +<li><p><code>FSharp.Compiler.Service.dll</code> のみビルドされる</p></li> |
| 55 | +<li> |
| 56 | +<p>ブートストラッパーやプロトコンパイラを使用しない。 |
| 57 | +F#コンパイラがインストール済みであることを想定。</p> |
| 58 | +</li> |
| 59 | +</ul> |
| 60 | +</li> |
| 61 | +<li> |
| 62 | +<p>FAKEを使用するビルドスクリプト。 |
| 63 | +すべてのコードのビルドとNuGetパッケージ、ドキュメントの生成、 |
| 64 | +NuGetパッケージの配布に必要なファイルの生成などがFAKEによって行われる。 |
| 65 | +(<a href="https://github.com/fsprojects/FSharp.ProjectScaffold">F# プロジェクト スキャフォールド</a> に準拠)</p> |
| 66 | +</li> |
| 67 | +<li> |
| 68 | +<p>新機能追加のためにコンパイラのソースコードを変更。 |
| 69 | +また、評価用関数を実装するためにF# Interactiveサービスに対する変更を追加。</p> |
| 70 | +</li> |
| 71 | +<li>F#編集用クライアントで使用されるAPIを改善するためにコンパイラのソースコードを変更。</li> |
| 72 | +<li>コンパイラサービスAPIに新機能を追加するためにコンパイラのソースコードを変更。</li> |
| 73 | +</ul> |
| 74 | +<p><code>fsharp/fsharp</code> のレポジトリに言語あるいはコンパイラが追加コミットされた場合、 |
| 75 | +それらはこのレポジトリにもマージされるべきで、同時に新しいNuGetパッケージもリリースする必要があります。</p> |
| 76 | +<h2><a name="ビルドとNuGet" class="anchor" href="#ビルドとNuGet">ビルドとNuGet</a></h2> |
| 77 | +<p>ビルドの手順は <a href="https://github.com/fsprojects/FSharp.ProjectScaffold">F# プロジェクト スキャフォールド</a> |
| 78 | +で推奨されているものに準じます。 |
| 79 | +プロジェクトを独自にビルドする場合、以下の手順に従ってください:</p> |
| 80 | +<table class="pre"><tr><td class="lines"><pre class="fssnip"><span class="l">1: </span> |
| 81 | +<span class="l">2: </span> |
| 82 | +</pre></td> |
| 83 | +<td class="snippet"><pre class="fssnip"><code lang="text">git clone https://github.com/fsharp/FSharp.Compiler.Service |
| 84 | +cd FSharp.Compiler.Service |
| 85 | +</code></pre></td></tr></table> |
| 86 | +<p>次に、(Windowsであれば) <code>build.cmd</code> または(LinuxやMac OSであれば) <code>build.sh</code> を実行してすべてをビルドします。 |
| 87 | +ファイルは <code>bin</code> ディレクトリ内に出力されます。 |
| 88 | +ドキュメントやNuGetパッケージもビルドしたい場合には <code>build Release</code> を実行します |
| 89 | +(このコマンドはGitHub上のドキュメントを更新しようとしますが、GitHubのレポジトリに適切な権限を持っている場合にのみ有効です)。</p> |
| 90 | +<h2><a name="クライアント" class="anchor" href="#クライアント">クライアント</a></h2> |
| 91 | +<p>このコンポーネントは以下のようなツールで使用されています:</p> |
| 92 | +<ul> |
| 93 | +<li><a href="https://github.com/dungpa/fantomas">Fantomas</a> - F# コードフォーマットツール</li> |
| 94 | +<li><a href="https://github.com/Lewix/fsharp-refactor">Fsharp-Refactor</a> - F#用リファクタリングツール</li> |
| 95 | +<li><a href="https://github.com/fsharp/fsharpbinding">FSharpbinding</a> - Xamarin Studio バインディング</li> |
| 96 | +<li><a href="http://fssnip.net/">F# Snippets web site</a> - F# 版のpastebin</li> |
| 97 | +<li><a href="https://github.com/BayardRock/FSharpWebIntellisense/">F# ACE Code Editor</a> - Web上のF#編集ツール</li> |
| 98 | +</ul> |
| 99 | + |
| 100 | + |
| 101 | + </div> |
| 102 | + <div class="span3"> |
| 103 | + <a href="https://nuget.org/packages/FSharp.Compiler.Service"> |
| 104 | + <img src="./../images/logo.png" style="width:140px;height:140px;margin:10px 0px 0px 35px;border-style:none;" /> |
| 105 | + </a> |
| 106 | + <ul class="nav nav-list" id="menu"> |
| 107 | + <li class="nav-header"> |
| 108 | + <a href="./../ja/index.html" class="nflag"><img src="./../images/ja.png" /></a> |
| 109 | + <a href="./../index.html" class="nflag nflag2"><img src="./../images/en.png" /></a> |
| 110 | + F# Compiler Services |
| 111 | + </li> |
| 112 | + <li><a href="./index.html">ホームページ</a></li> |
| 113 | + <li class="divider"></li> |
| 114 | + <li><a href="https://www.nuget.org/packages/FSharp.Compiler.Service">NuGet経由でライブラリを取得</a></li> |
| 115 | + <li><a href="https://github.com/fsharp/FSharp.Compiler.Service">GitHub上のソースコード</a></li> |
| 116 | + <li><a href="https://github.com/fsharp/FSharp.Compiler.Service/blob/master/LICENSE">ライセンス</a></li> |
| 117 | + <li><a href="https://github.com/fsharp/FSharp.Compiler.Service/blob/master/RELEASE_NOTES.md">リリースノート</a></li> |
| 118 | + |
| 119 | + <li class="nav-header">はじめに</li> |
| 120 | + <li><a href="./index.html">ホームページ</a></li> |
| 121 | + <li><a href="./devnotes.html">開発者用メモ</a></li> |
| 122 | + <li><a href="./fsharp-readme.html">F#コンパイラのreadme</a></li> |
| 123 | + |
| 124 | + <li class="nav-header">利用可能なサービス</li> |
| 125 | + <li><a href="./tokenizer.html">F#言語トークナイザ</a></li> |
| 126 | + <li><a href="./untypedtree.html">型無しASTの処理</a></li> |
| 127 | + <li><a href="./editor.html">エディタ(IDE)のサービスを使用する</a></li> |
| 128 | + <li><a href="./symbols.html">解決済みのシンボルを使用する</a></li> |
| 129 | + <li><a href="./project.html">プロジェクト全体の分析</a></li> |
| 130 | + <li><a href="./interactive.html">F# Interactiveの組み込み</a></li> |
| 131 | + <li><a href="./compiler.html">F#コンパイラの組み込み</a></li> |
| 132 | + <li><a href="./filesystem.html">ファイルシステムの仮想化</a></li> |
| 133 | + |
| 134 | + <li class="nav-header">リファレンス</li> |
| 135 | + <li><a href="./../reference/index.html">API リファレンス</a></li> |
| 136 | + </ul> |
| 137 | + </div> |
| 138 | + </div> |
| 139 | + </div> |
| 140 | + <a href="https://github.com/fsharp/FSharp.Compiler.Service"><img style="position: absolute; top: 0; right: 0; border: 0;" src="https://s3.amazonaws.com/github/ribbons/forkme_right_gray_6d6d6d.png" alt="Fork me on GitHub"></a> |
| 141 | + </body> |
| 142 | + </html> |
0 commit comments