Changes between Version 45 and Version 46 of SafeHaskell


Ignore:
Timestamp:
Apr 15, 2011 2:33:34 AM (4 years ago)
Author:
dterei
Comment:

Remove specialize pragma from restricted.

Legend:

Unmodified
Added
Removed
Modified
  • SafeHaskell

    v45 v46  
    174174
    175175  * '''`-XSafe`''':
    176     * '''Disallowed completely''': `GeneralizedNewtypeDeriving`, `TemplateHaskell`, {{{RULES}}}, {{{SPECIALIZE}}}, `-XSafeLanguage`
     176    * '''Disallowed completely''': `GeneralizedNewtypeDeriving`, `TemplateHaskell`, {{{RULES}}}, `-XSafeLanguage`
    177177    * '''Only allowed on command line''': `-cpp`, `-pgm{L,P,lo,lc,m,s,a,l,dll,F,windres}`, `-opt{L,P,lo,lc,m,s,a,l,dll,F,windres}`, `-F`, `-l''lib''`, `-framework`, `-L''dir''`, `-framework-path''dir''`, `-main-is`, `-package-name`, `-D''symbol''`, `-U''symbol''`, `-I''dir''`, `-with-rts-opts`, `-dylib-install-name`, `-hcsuf`, `-hidir`, `-hisuf`, `-o`, `-odir`, `-ohi`, `-osuf`, `-stubdir`, `-outputdir`, `-tmpdir`
    178178    * '''Restricted functionality''':
     
    210210 * The {{{OverlappingInstances}}} extension can be used to violate semantic consistency, because malicious code could redefine a type instance (by containing a more specific instance definition) in a way that changes the behaviour of code importing the untrusted module. The extension is not disabled under `-XSafe` or `-XSafeLanguage`, instead it just requires that Overlapping instance declarations must either all reside in modules compiled without -XSafe, or else all reside in the same module.
    211211
    212  * Likewise, {{{RULES}}} and {{{SPECIALIZE}}} pragmas can change the behavior of trusted code in unanticipated ways, violating semantic consistency.
     212 * Likewise, the {{{RULES}}} pragma can change the behavior of trusted code in unanticipated ways, violating semantic consistency.
    213213
    214214 * {{{OPTIONS_GHC}}} is dangerous in unfiltered form.  Among other things, it could use `-trust` to trust packages the invoking user doesn't in fact trust.
     
    235235 * {{{GHC.Prim}}} will need to be made (or just kept) unsafe.
    236236
    237  * {{{-XSafe}}} should disallow the {{{TemplateHaskell}}}, {{{GeneralizedNewtypeDeriving}}}, and {{{CPP}}} language extensions, as well as the {{{RULES}}} and {{{SPECIALIZE}}} pragmas. (See [#InteractionofOptions Interaction of Options] above for details).
     237 * {{{-XSafe}}} should disallow the {{{TemplateHaskell}}}, {{{GeneralizedNewtypeDeriving}}}, and {{{CPP}}} language extensions, as well as the {{{RULES}}} pragma. (See [#InteractionofOptions Interaction of Options] above for details).
    238238
    239239 * Overlapping instance declarations must either all reside in modules compiled without `-XSafe`, or else all reside in the same module.  It violates semantic consistency to allow Safe code to change the instance definition associated with a particular type.