Changes between Version 17 and Version 18 of SafeHaskell


Ignore:
Timestamp:
Nov 22, 2010 7:34:18 PM (5 years ago)
Author:
David
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • SafeHaskell

    v17 v18  
    5353 * ''If a module is compiled with `-XTrustworthy`'', then its trust dependencies always include itself, plus the union of trust dependencies of all modules imported with the `safe` keyword.
    5454
    55  * ''If a module is compiled with `-XSafe` but not `-XTrustworthy`'', then its trust dependencies are the union trust dependencies of all modules it imports.
     55 * ''If a module is compiled with `-XSafe` but not `-XTrustworthy`'', then its trust dependencies are the union of trust dependencies of all modules it imports.
    5656
    5757 * If a module was compiled with neither `-XSafe` nor `-XTrustworthy`, or, regardless of these options, if a module contains a `{-# LANGUAGE Untrustworthy #-}` pragma, then the interface file marks the module as not trustable, so there are no trust dependencies.
    5858
    59 Currently, in any given run of the compiler, GHC classifies each package as either exposed or hidden.  To incorporate trust, we add a second bit specifying whether each package is trusted or untrusted.  This bit will be controllable by two new options to `ghc-pkg`, `trust` and `distrust`, which are analogous to `expose` and `hide`.  (The trust bit is meaningless while a package is hidden, but will stay in the package database for when the package is exposed.)
     59Currently, in any given run of the compiler, GHC classifies each package as either exposed or hidden.  To incorporate trust, we add a second bit specifying whether each package is trusted or untrusted.  This bit will be controllable by two new options to `ghc-pkg`, `trust` and `distrust`, which are analogous to `expose` and `hide`.
    6060
    6161On the command line, several new options control which packages are trusted:
     
    6565 * `-distrust` __P__ - exposes package __P__ (if it was hidden), and considers it an untrusted package, regardless of the contents of the package database.
    6666
    67  * `-distrust-all-packages` - considers all packages untrusted unless they are explicitly trusted by subsequent command-line options.
    68 
    69  * A convenience option `-ultrasafe` is equivalent to {{{-distrust-all-packages -XSafe -XNoForeignFunctionInterface -XNoImplicitPrelude}}}.
     67 * `-distrust-all-packages` - considers all packages untrusted unless they are explicitly trusted by subsequent command-line options.  (This option does not change the exposed/hidden status of packages, so is not equivalent to applying `-distrust` to all packages on the system.)
     68
     69 * A convenience option `-ultrasafe` is equivalent to {{{-distrust-all-packages -XNoForeignFunctionInterface -XNoImplicitPrelude -XSafe}}}.
    7070
    7171None of these options can be specified or overwritten by `OPTIONS_GHC` pragmas in the Safe dialect.