[commit: ghc] ghc-7.8: Documentation updates for 7.8.1 release (de7558a)

git at git.haskell.org git at git.haskell.org
Fri Feb 28 23:39:26 UTC 2014


Repository : ssh://git@git.haskell.org/ghc

On branch  : ghc-7.8
Link       : http://ghc.haskell.org/trac/ghc/changeset/de7558a6a8857a681cb151ca8e918a415cce7023/ghc

>---------------------------------------------------------------

commit de7558a6a8857a681cb151ca8e918a415cce7023
Author: Austin Seipp <austin at well-typed.com>
Date:   Fri Feb 28 16:23:17 2014 -0600

    Documentation updates for 7.8.1 release
    
    Notably, GND is now usable with Safe Haskell. Also, Coercible now is in
    Data.Coerce canonically, and we added some more instances.
    
    Signed-off-by: Austin Seipp <austin at well-typed.com>
    (cherry picked from commit 71611523c25bb89b81e789d5a2dd3d5d9754b025)


>---------------------------------------------------------------

de7558a6a8857a681cb151ca8e918a415cce7023
 docs/users_guide/7.8.1-notes.xml  |   25 ++++++++++++++++++++++---
 docs/users_guide/safe_haskell.xml |   35 +++++++++++++++--------------------
 2 files changed, 37 insertions(+), 23 deletions(-)

diff --git a/docs/users_guide/7.8.1-notes.xml b/docs/users_guide/7.8.1-notes.xml
index 754df3f..4138efe 100644
--- a/docs/users_guide/7.8.1-notes.xml
+++ b/docs/users_guide/7.8.1-notes.xml
@@ -107,7 +107,12 @@
                 that previously compiled will no longer work.
 
                 For more information, see <xref linkend="roles"/>.
-           </para>
+          </para>
+           <para>
+                As a result of this change,
+                <literal>GeneralizedNewtypeDeriving</literal> can now
+                be used with Safe Haskell.
+          </para>
        </listitem>
 
         <listitem>
@@ -462,9 +467,9 @@
                      that have the same run-time-presentation, such as
                      newtypes, but also newtypes inside containers. See the
                      haddock documentation of
-                     <ulink url="&libraryBaseLocation;/GHC-Exts.html#v%3Acoerce">coerce</ulink>
+                     <ulink url="&libraryBaseLocation;/Data-Coerce.html#v%3Acoerce">coerce</ulink>
                      and of the class
-                     <ulink url="&libraryBaseLocation;/GHC-Exts.html#t%3ACoercible">Coercible</ulink>
+                     <ulink url="&libraryBaseLocation;/Data-Coerce.html#t%3ACoercible">Coercible</ulink>
                      for more details.
                </para>
                 <para>
@@ -776,6 +781,20 @@
            </listitem>
              <listitem>
                 <para>
+                    There are now <literal>Data</literal>,
+                    <literal>Typeable</literal>, and
+                    <literal>Generic</literal> instances for the types
+                    in <literal>Data.Monoid</literal> and
+                    <literal>Control.Applicative</literal>
+               </para>
+           </listitem>
+             <listitem>
+                <para>
+                    There are now <literal>Num</literal> instances for <literal>Data.Monoid.Product</literal> and <literal>Data.Monoid.Sum</literal>
+               </para>
+           </listitem>
+             <listitem>
+                <para>
                     There are now <literal>Eq</literal>, <literal>Ord</literal>, <literal>Show</literal> and <literal>Read</literal> instances for <literal>ZipList</literal>.
                </para>
            </listitem>
diff --git a/docs/users_guide/safe_haskell.xml b/docs/users_guide/safe_haskell.xml
index 04a244b..10d0a63 100644
--- a/docs/users_guide/safe_haskell.xml
+++ b/docs/users_guide/safe_haskell.xml
@@ -186,18 +186,18 @@
       </para>
 
       <para>
-      The use of the <option>-XSafe</option> flag to compile the Danger module
-      restricts the features of Haskell that can be used to a
-      <link linkend="safe-language">safe subset</link>. This includes
-      disallowing <literal>unsafePerformIO</literal>, Template Haskell, pure
-      FFI functions, Generalized Newtype Deriving, RULES and restricting the
-      operation of Overlapping Instances. The <option>-XSafe</option> flag also
-      restricts the modules can be imported by Danger to only those that are
-      considered trusted. Trusted modules are those compiled with
-      <option>-XSafe</option>, where GHC provides a mechanical guarantee that
-      the code is safe. Or those modules compiled with
-      <option>-XTrustworthy</option>, where the module author claims that the
-      module is Safe.
+      The use of the <option>-XSafe</option> flag to compile the
+      Danger module restricts the features of Haskell that can be used
+      to a <link linkend="safe-language">safe subset</link>. This
+      includes disallowing <literal>unsafePerformIO</literal>,
+      Template Haskell, pure FFI functions, RULES and restricting the
+      operation of Overlapping Instances. The <option>-XSafe</option>
+      flag also restricts the modules can be imported by Danger to
+      only those that are considered trusted. Trusted modules are
+      those compiled with <option>-XSafe</option>, where GHC provides
+      a mechanical guarantee that the code is safe. Or those modules
+      compiled with <option>-XTrustworthy</option>, where the module
+      author claims that the module is Safe.
       </para>
 
       <para>
@@ -254,6 +254,7 @@
         for example, that the <literal>unsafePerformIO :: IO a -> a</literal>
         function is disallowed in the safe language.
       </listitem>
+
       <listitem><emphasis>Module boundary control</emphasis> — Haskell
         code compiled using the safe language is guaranteed to only access
         symbols that are publicly available to it through other modules export
@@ -263,10 +264,8 @@
         through careful use of its export list then code compiled using the
         safe language that imports M is guaranteed to respect those invariants.
         Because of this, <emphasis><link linkend="template-haskell">Template
-        Haskell</link></emphasis> and <emphasis>
-        <link linkend="newtype-deriving">GeneralizedNewtypeDeriving</link>
-        </emphasis> are disabled in the safe language as they can be used
-        to violate this property.
+        Haskell</link></emphasis> is disabled in the safe language as it can be
+        used to violate this property.
       </listitem>
       <listitem><emphasis>Semantic consistency</emphasis> — The safe
         language is strictly a subset of Haskell as implemented by GHC. Any
@@ -294,10 +293,6 @@
     following features:
 
     <itemizedlist>
-      <listitem><emphasis>GeneralizedNewtypeDeriving</emphasis> — It can
-        be used to violate constructor access control, by allowing untrusted
-        code to manipulate protected data types in ways the data type author
-        did not intend, breaking invariants they have established.</listitem>
       <listitem><emphasis>TemplateHaskell</emphasis> — Is particularly
         dangerous, as it can cause side effects even at compilation time and
         can be used to access constructors of abstract data types.</listitem>



More information about the ghc-commits mailing list