Commits

Stephan Tolksdorf committed 21dcd82

Documentation changes for the 1.0 release

Comments (0)

Files changed (8)

Doc/html/about/changelog.html

                 <tbody class="nav-before-open n4">
                  <tr class="nav-entry n4 _1">
                   <td class="nav-number n4"></td>
-                  <td class="nav-title n4"><a href="#v0_9_2">Version 0.9.2, 2012‒03‒09</a></td>
+                  <td class="nav-title n4"><a href="#v1_0">Version 1.0.0, 2012‒07‒19</a></td>
                  </tr>
                  <tr class="nav-entry n4 _2">
                   <td class="nav-number n4"></td>
-                  <td class="nav-title n4"><a href="#v0_9_1">Version 0.9.1, 2011‒05‒22</a></td>
+                  <td class="nav-title n4"><a href="#v0_9_2">Version 0.9.2, 2012‒03‒09</a></td>
                  </tr>
                  <tr class="nav-entry n4 _3">
                   <td class="nav-number n4"></td>
-                  <td class="nav-title n4"><a href="#v0_9">Version 0.9.0, 2011‒04‒26</a></td>
+                  <td class="nav-title n4"><a href="#v0_9_1">Version 0.9.1, 2011‒05‒22</a></td>
                  </tr>
                  <tr class="nav-entry n4 _4">
                   <td class="nav-number n4"></td>
-                  <td class="nav-title n4"><a href="#v0_8_x">Version 0.8.x, no release</a></td>
+                  <td class="nav-title n4"><a href="#v0_9">Version 0.9.0, 2011‒04‒26</a></td>
                  </tr>
                  <tr class="nav-entry n4 _5">
                   <td class="nav-number n4"></td>
-                  <td class="nav-title n4"><a href="#v0_7_3_1">Version 0.7.3.1, 2009‒02‒26</a></td>
+                  <td class="nav-title n4"><a href="#v0_8_x">Version 0.8.x, no release</a></td>
                  </tr>
                  <tr class="nav-entry n4 _6">
                   <td class="nav-number n4"></td>
-                  <td class="nav-title n4"><a href="#v0_7_3">Version 0.7.3, 2008‒12‒08</a></td>
+                  <td class="nav-title n4"><a href="#v0_7_3_1">Version 0.7.3.1, 2009‒02‒26</a></td>
                  </tr>
                  <tr class="nav-entry n4 _7">
                   <td class="nav-number n4"></td>
-                  <td class="nav-title n4"><a href="#v0_7_2">Version 0.7.2, 2008‒11‒17</a></td>
+                  <td class="nav-title n4"><a href="#v0_7_3">Version 0.7.3, 2008‒12‒08</a></td>
                  </tr>
                  <tr class="nav-entry n4 _8">
                   <td class="nav-number n4"></td>
-                  <td class="nav-title n4"><a href="#v0_7_1">Version 0.7.1, 2008‒09‒29</a></td>
+                  <td class="nav-title n4"><a href="#v0_7_2">Version 0.7.2, 2008‒11‒17</a></td>
                  </tr>
                  <tr class="nav-entry n4 _9">
                   <td class="nav-number n4"></td>
-                  <td class="nav-title n4"><a href="#v0_7_0_1">Version 0.7.0.1, 2008‒09‒23</a></td>
+                  <td class="nav-title n4"><a href="#v0_7_1">Version 0.7.1, 2008‒09‒29</a></td>
                  </tr>
                  <tr class="nav-entry n4 _0">
                   <td class="nav-number n4"></td>
-                  <td class="nav-title n4"><a href="#v0_7">Version 0.7.0, 2008‒09‒13</a></td>
+                  <td class="nav-title n4"><a href="#v0_7_0_1">Version 0.7.0.1, 2008‒09‒23</a></td>
                  </tr>
                  <tr class="nav-entry n4 _1">
                   <td class="nav-number n4"></td>
-                  <td class="nav-title n4"><a href="#v0_6">Version 0.6.0, 2008‒05‒20</a></td>
+                  <td class="nav-title n4"><a href="#v0_7">Version 0.7.0, 2008‒09‒13</a></td>
                  </tr>
                  <tr class="nav-entry n4 _2">
                   <td class="nav-number n4"></td>
-                  <td class="nav-title n4"><a href="#v0_5_1">Version 0.5.1, 2008‒01‒20</a></td>
+                  <td class="nav-title n4"><a href="#v0_6">Version 0.6.0, 2008‒05‒20</a></td>
                  </tr>
                  <tr class="nav-entry n4 _3">
                   <td class="nav-number n4"></td>
-                  <td class="nav-title n4"><a href="#v0_5">Version 0.5.0, 2008‒01‒15</a></td>
+                  <td class="nav-title n4"><a href="#v0_5_1">Version 0.5.1, 2008‒01‒20</a></td>
                  </tr>
                  <tr class="nav-entry n4 _4">
                   <td class="nav-number n4"></td>
-                  <td class="nav-title n4"><a href="#v0_4_4">Version 0.4.4, 2008‒01‒13</a></td>
+                  <td class="nav-title n4"><a href="#v0_5">Version 0.5.0, 2008‒01‒15</a></td>
                  </tr>
                  <tr class="nav-entry n4 _5">
                   <td class="nav-number n4"></td>
-                  <td class="nav-title n4"><a href="#v0_4_3">Version 0.4.3, 2008‒01‒12</a></td>
+                  <td class="nav-title n4"><a href="#v0_4_4">Version 0.4.4, 2008‒01‒13</a></td>
                  </tr>
                  <tr class="nav-entry n4 _6">
                   <td class="nav-number n4"></td>
-                  <td class="nav-title n4"><a href="#v0_4_2">Version 0.4.2, 2008‒01‒04</a></td>
+                  <td class="nav-title n4"><a href="#v0_4_3">Version 0.4.3, 2008‒01‒12</a></td>
                  </tr>
                  <tr class="nav-entry n4 _7">
                   <td class="nav-number n4"></td>
+                  <td class="nav-title n4"><a href="#v0_4_2">Version 0.4.2, 2008‒01‒04</a></td>
+                 </tr>
+                 <tr class="nav-entry n4 _8">
+                  <td class="nav-number n4"></td>
                   <td class="nav-title n4"><a href="#v0_4_1">Version 0.4.1, 2008‒01‒02</a></td>
                  </tr>
-                 <tr class="nav-entry n4 _8">
+                 <tr class="nav-entry n4 _9">
                   <td class="nav-number n4"></td>
                   <td class="nav-title n4"><a href="#v0_4">Version 0.4.0, 2007‒12‒30</a></td>
                  </tr>
  </div>
  <div class="section s2">
   <h1 class="title h2"><span>Changelog</span></h1>
+  <div id="v1_0" class="section s3">
+   <h2 class="title h3"><span>Version 1.0.0, 2012‒07‒19</span></h2>
+   <div class="intro i3">
+    <div class="para _1 lcinp">
+     <ul class="l1">
+      <li class="_1">
+       disabled code generation in <code class="fsharp"><a href="../reference/charparsers.html#members.isAnyOf"><span
+       class="ci">isAnyOf</span></a></code>, <code class="fsharp"><a href="../reference/charparsers.html#members.isNoneOf"><span
+       class="ci">isNoneOf</span></a></code>, <code class="fsharp"><a href="../reference/charparsers.html#members.anyOf"><span
+       class="ci">anyOf</span></a></code>, <code class="fsharp"><a href="../reference/charparsers.html#members.skipAnyOf"><span
+       class="ci">skipAnyOf</span></a></code>, <code class="fsharp"><a href="../reference/charparsers.html#members.noneOf"><span
+       class="ci">noneOf</span></a></code> and <code class="fsharp"><a href="../reference/charparsers.html#members.skipNoneOf"><span
+       class="ci">skipNoneOf</span></a></code> by default (you can reenable it using the new <code class="fsharp"><a
+       href="../download-and-installation.html#configuration-options.USE_STATIC_MAPPING_FOR_IS_ANY_OF"><span
+       class="ci">USE_STATIC_MAPPING_FOR_IS_ANY_OF</span></a></code> compilation option)
+      </li>
+      <li class="_2">
+       annotated some <code class="fsharp"><a href="../reference/charstream.html#CharStream"><span class="ci">CharStream</span></a></code> methods
+       with the .NET 4.5 <code class="fsharp"><span class="ci">AggressiveInlining</span></code> option (see the new <code class="fsharp"><a
+       href="../download-and-installation.html#configuration-options.CLR45"><span class="ci">CLR45</span></a></code> compilation option)
+      </li>
+      <li class="_3">updated case folding and XID property tables to Unicode 6.1.0</li>
+      <li class="_4">fixed two documentation typos (spotted by Rasmus Meldgaard and Kurt Schelfthout – thanks Rasmus and Kurt!)</li>
+     </ul>
+    </div>
+   </div>
+  </div>
   <div id="v0_9_2" class="section s3">
    <h2 class="title h3"><span>Version 0.9.2, 2012‒03‒09</span></h2>
    <div class="intro i3">
     <div class="para _1 lcinp">
      <ul class="l1">
-      <li class="_1">fix compilation in Visual Studio 11 Beta</li>
+      <li class="_1">fixed compilation in Visual Studio 11 Beta</li>
       <li class="_2">
        added missing <code class="fsharp"><span class="ci">ReturnFrom</span></code> member to <code class="fsharp"><a
        href="../reference/primitives.html#members.parse"><span class="ci">parse</span></a></code> builder object (reported by Kurt Schelfthout and
            <p>Some renamings and function signature changes:</p>
            <div id="v0_9.renamings" class="table">
             <table cellspacing="0">
-             <caption><span class="table-caption-prefix">Table <span class="table-number">1.3.3.1</span></span></caption>
+             <caption><span class="table-caption-prefix">Table <span class="table-number">1.3.4.1</span></span></caption>
              <thead>
               <tr class="_1">
                <th class="_1">Old</th>

Doc/html/about/status-and-roadmap.html

      <p>FParsec has been in development for several years and can now be considered &#x201C;stable&#x201D;.</p>
     </div>
     <div class="para _2">
-     <p>Version 0.9 is the last major release of FParsec before version 1.0.</p>
+     <p>Version 1.0 of FParsec was released on 19 July 2012.</p>
     </div>
-    <div class="para _3">
-     <p>Version 1.0 will be released once no bugs have been reported for a few weeks.</p>
-    </div>
-    <div class="para _4 lcinp">
+    <div class="para _3 lcinp">
      <div class="admonition">
       <div class="admonition-title">Note</div>
       <div class="admonition-body">
      <p>There are no firm plans for any major new features yet.</p>
     </div>
     <div class="para _2">
-     <p>One goal for the future development of FParsec is to support a more declarative syntax wherever possible.</p>
+     <p>
+      One goal for the future development of FParsec is to support a more declarative parser definition syntax without compromising on FParsec’s
+      performance or language‐integrated nature.
+     </p>
     </div>
     <div class="para _3">
      <p>
-      If the <a href="http://player.microsoftpdc.com/Session/04092962-4ed1-42c6-be07-203d42115274">type provider</a> language feature in the next
-      version of F# will be powerful enough to implement some kind of typed regular expression (similar to the <code class="fsharp"><span
-      class="ci">printf</span></code>‐syntax), that would certainly be an attractive feature to implement for FParsec.
+      For example, it would be nice if FParsec provided a way to automatically create optimized lexer functions from a series of typed regular
+      expressions and associated mapping functions, ideally at compile time. Using such a feature could maybe look similar to
      </p>
     </div>
-    <div class="para _4">
-     <p>
-      In the longer term it would also be nice if FParsec could automatically optimize certain combined <code class="fsharp"><a
-      href="../reference/primitives.html#members.Parser"><span class="ci">Parser</span></a></code> functions, but that should ideally be done at
-      compile time and F# currently doesn’t have the meta‐programming facilities for that.
-     </p>
+    <div class="para _4 lcinp">
+<pre class="code fsharp"><span class="ck">let</span> <span class="ci">lexer</span> <span class="cp">:</span> <a href="../reference/primitives.html#members.Parser"><span class="ci">Parser</span></a><span class="cp">&lt;</span><span class="ci">AstNode</span><span class="cp">,</span> <span class="ctv">'u</span><span class="cp">&gt;</span> <span class="cp">=</span> 
+    <span class="ci">lex</span> <span class="cp">[</span><span class="cs"><span class="cld">"</span>regex-with-1-capture-group<span class="crd">"</span></span><span class="cp">,</span> <span class="cp">(</span><span class="ck">fun</span> <span class="ci">x</span> <span class="cr">-&gt;</span> <span class="ci">AstNode1</span><span class="cp">(</span><span class="ci">x</span><span class="cp">)</span><span class="cp">)</span>
+         <span class="cs"><span class="cld">"</span>regex-with-2-capture-groups<span class="crd">"</span></span><span class="cp">,</span> <span class="cp">(</span><span class="ck">fun</span> <span class="ci">x</span> <span class="ci">y</span> <span class="cr">-&gt;</span> <span class="ci">AstNode2</span><span class="cp">(</span><span class="ci">x</span><span class="cp">,</span> <span class="ci">y</span><span class="cp">)</span><span class="cp">)</span>
+         <span class="cbc"><span class="cld">(*</span> ... <span class="crd">*)</span></span><span class="cp">]</span>
+</pre>
     </div>
    </div>
   </div>

Doc/html/download-and-installation.html

    <div class="intro i2">
     <div class="para _1">
      <p>
+      <em>This information is this section might be partially out‐of‐date. Please <a href="https://bitbucket.org/fparsec/main/issues/new">file a
+      documentation bug</a> if you can provide more up‐to‐date information.</em>
+     </p>
+    </div>
+    <div class="para _2">
+     <p>
       FParsec is compatible with the latest version of Mono from the <a href="https://github.com/mono/mono">GitHub</a> <span class="tt">master</span>
       branch (the <span class="tt">2.10</span> branch is missing at least commit <a
       href="https://github.com/mono/mono/commit/410b3e423f1135a9783d">410b3e423f1135a9783d</a> for FParsec to compile).
      </p>
     </div>
-    <div class="para _2">
+    <div class="para _3">
      <p>
       You can build FParsec for Mono using the <span class="tt">Makefile</span> in the <span class="tt">Build</span> directory. The debug and release
       assemblies will be put in the <span class="tt">Build/bin/Debug</span> and <span class="tt">Build/bin/Release</span> directories respectively.
      </p>
     </div>
-    <div class="para _3">
+    <div class="para _4">
      <p>
       Mono’s <code class="fsharp"><span class="ci">System</span><span class="cm">.</span><span class="ci">Text</span><span class="cm">.</span><span
-      class="ci">Decoder</span></code> classes have some bugs that cause issues with FParsec. (I’m currently preparing bug reports.) Until these bugs
-      are fixed only the <a href="#low-trust-version">Low‐Trust version</a> of FParsec works under Mono.
+      class="ci">Decoder</span></code> classes have some bugs that cause issues with FParsec. Until these bugs are fixed only the <a
+      href="#low-trust-version">Low‐Trust version</a> of FParsec works under Mono.
      </p>
     </div>
-    <div class="para _4 lcinp">
+    <div class="para _5 lcinp">
      <p>Note:</p>
      <ul class="l1">
       <li class="_1">
        Mono <a href="https://bugzilla.novell.com/show_bug.cgi?id=480178">currently doesn’t properly support</a> Unicode code points outside the Basic
        Multilingual Plane (i.e. code points above 0xffff). This breaks FParsec’s <code class="fsharp"><a
-       href="reference/charparsers.html#members.identifier"><span class="ci">identifier</span></a></code> parser, for example.
+       href="reference/charparsers.html#members.identifier"><span class="ci">identifier</span></a></code> parser, for example. <em>(Note: The linked
+       ticket has been closed in the meantime, so the issue might have been fixed since the last time I checked.)</em>
       </li>
       <li class="_2">
        The <code class="fsharp"><a href="reference/charparsers.html#members.regex"><span class="ci">regex</span></a></code> parser and the <code
       </li>
      </ul>
     </div>
-    <div class="para _5 lcinp">
+    <div class="para _6 lcinp">
      <p>There are also two issues with the official &#x201C;source code drop&#x201D; for the F# compiler:</p>
      <ul class="l1">
       <li class="_1">
          <p>Compile for a CLR version ≥ 4.</p>
         </div>
        </dd>
-       <dt class="_3"><code class="fsharp"><span class="ci">CLR45</span></code></dt>
+       <dt class="_3"><code class="fsharp"><span class="a" id="configuration-options.CLR45"><span class="ci">CLR45</span></span></code></dt>
        <dd class="_3">
         <div class="para _1">
          <p>Compile for a CLR version ≥ 4.5.</p>
    </div>
    <div class="para _5">
     <p>
-     <span class="i"><strong>Latest release:</strong></span> FParsec 0.9.2, 2012‒03‒09, <a
+     <span class="i"><strong>Latest release:</strong></span> FParsec 1.0.0, 2012‒07‒19, <a
      href="https://bitbucket.org/fparsec/main/downloads">Download</a>, <a href="about/changelog.html">Changes</a>
     </p>
    </div>

Doc/src/changelog.txt

 [section Changelog]
 [no-subsection-numbers]
 
+[section#v1_0 Version 1.0.0, 2012-07-19]
+- disabled code generation in `isAnyOf`, `isNoneOf`, `anyOf`, `skipAnyOf`, `noneOf` and `skipNoneOf` by default (you can reenable it using the new `USE_STATIC_MAPPING_FOR_IS_ANY_OF` compilation option)
+- annotated some `CharStream` methods with the .NET 4.5 `AggressiveInlining` option (see the new `CLR45` compilation option)
+- updated case folding and XID property tables to Unicode 6.1.0
+- fixed two documentation typos (spotted by Rasmus Meldgaard and Kurt Schelfthout -- thanks Rasmus and Kurt!)
+[/section]
+
 [section#v0_9_2 Version 0.9.2, 2012-03-09]
-- fix compilation in Visual Studio 11 Beta
+- fixed compilation in Visual Studio 11 Beta
 - added missing `ReturnFrom` member to `parse` builder object (reported by Kurt Schelfthout and Tomas Petricek -- thanks Kurt and Tomas!)
 - added workaround for .NET `ConsoleStream` [url "https://bitbucket.org/fparsec/main/issue/23/reading-from-systemio__consolestream-hangs" issue] (reported by Alexander Kahl -- thanks Alexander!)
 - set `AllowPartiallyTrustedCallers` and `SecurityTransparent` assembly attributes in LOW_TRUST NET4 build (as suggested by hammett -- thanks hammett!)

Doc/src/documentation.txt

 
 FParsec is an F# adaptation of [url "http://www.haskell.org/haskellwiki/Parsec" Parsec], the popular parser combinator library for Haskell by [url "http://research.microsoft.com/en-us/um/people/daan/" Daan Leijen]. While the implementations of Parsec and FParsec are completely different, they share a similar top-level API.
 
-[/ **Latest release:**] FParsec 0.9.2, 2012-03-09, [url "https://bitbucket.org/fparsec/main/downloads" Download], [^about.changelog Changes]
+[/ **Latest release:**] FParsec 1.0.0, 2012-07-19, [url "https://bitbucket.org/fparsec/main/downloads" Download], [^about.changelog Changes]
 
 [auto-link{
     do-not-pick-up-as-link-targets = [ "ToString"],

Doc/src/download-and-installation.txt

 
 [section Building FParsec with Mono]
 
+[*This information is this section might be partially out-of-date. Please [url "https://bitbucket.org/fparsec/main/issues/new" file a documentation bug] if you can provide more up-to-date information.]
+
 FParsec is compatible with the latest version of Mono from the [url "https://github.com/mono/mono" GitHub] =master= branch (the =2.10= branch is missing at least commit [url "https://github.com/mono/mono/commit/410b3e423f1135a9783d" 410b3e423f1135a9783d] for FParsec to compile).
 
 You can build FParsec for Mono using the =Makefile= in the =Build= directory. The debug and release assemblies will be put in the [= Build/bin/Debug] and [= Build/bin/Release] directories respectively.
 
-Mono's `[no-auto-link System.Text.Decoder]` classes have some bugs that cause issues with FParsec. (I'm currently preparing bug reports.) Until these bugs are fixed only the @Low-Trust version@ of FParsec works under Mono.
+Mono's `[no-auto-link System.Text.Decoder]` classes have some bugs that cause issues with FParsec.  Until these bugs are fixed only the @Low-Trust version@ of FParsec works under Mono.
 
 Note:
-- Mono [url "https://bugzilla.novell.com/show_bug.cgi?id=480178" currently doesn't properly support] Unicode code points outside the Basic Multilingual Plane (i.e. code points above 0xffff). This breaks FParsec's `identifier` parser, for example. 
+- Mono [url "https://bugzilla.novell.com/show_bug.cgi?id=480178" currently doesn't properly support] Unicode code points outside the Basic Multilingual Plane (i.e. code points above 0xffff). This breaks FParsec's `identifier` parser, for example. *(Note: The linked ticket has been closed in the meantime, so the issue might have been fixed since the last time I checked.)*
 - The `regex` parser and the `[^Match_Regex CharStream.Match](Regex)` method curently don't work on Mono, because Mono's regular expression implementation [url "https://bugzilla.novell.com/show_bug.cgi?id=474154" does not correctly match regexes on substrings] (Laurent Le Brun reported this issue - thanks Laurent!).
 
 There are also two issues with the official "source code drop" for the F# compiler:
 [`CLR4`]
 [Compile for a CLR version ≥ 4.]
 
-[`CLR45`]
+[`#CLR45#`]
 [ 
 Compile for a CLR version ≥ 4.5.
 

Doc/src/status-and-roadmap.txt

 [section Status]
 FParsec has been in development for several years and can now be considered "stable".
 
-Version 0.9 is the last major release of FParsec before version 1.0.
-
-Version 1.0 will be released once no bugs have been reported for a few weeks.
+Version 1.0 of FParsec was released on 19 July 2012.
 
 [note
 
 
 There are no firm plans for any major new features yet.
 
-One goal for the future development of FParsec is to support a more declarative syntax wherever possible.
+One goal for the future development of FParsec is to support a more declarative parser definition syntax without compromising on FParsec's performance or language-integrated nature.
 
-If the [url "http://player.microsoftpdc.com/Session/04092962-4ed1-42c6-be07-203d42115274" type provider] language feature in the next version of F# will be powerful enough to implement some kind of typed regular expression (similar to the `printf`-syntax), that would certainly be an attractive feature to implement for FParsec.
+For example, it would be nice if FParsec provided a way to automatically create optimized lexer functions from a series of typed regular expressions and associated mapping functions, ideally at compile time. Using such a feature could maybe look similar to
 
-In the longer term it would also be nice if FParsec could automatically optimize certain combined `Parser` functions, but that should ideally be done at compile time and F# currently doesn't have the meta-programming facilities for that.
+``
+let lexer : Parser<AstNode, 'u> = 
+    lex ["regex-with-1-capture-group", (fun x -> AstNode1(x))
+         "regex-with-2-capture-groups", (fun x y -> AstNode2(x, y))
+         (* ... *)]
+``
 
 [/section]