Changes between Version 54 and Version 55 of SafeHaskell


Ignore:
Timestamp:
Jul 6, 2011 7:43:51 PM (4 years ago)
Author:
dterei
Comment:

Remove old part about some flags command line only.

Legend:

Unmodified
Added
Removed
Modified
  • SafeHaskell

    v54 v55  
    217217== Safe Language == 
    218218 
    219 The Safe Language restricts things in three different ways: 
    220  
    221   1. Certain GHC OPTIONS and LANGUAGE extensions are only allowed on the command line and not in source PRAGMAS. 
    222   2. Certain GHC LANGUAGE extensions are disallowed completely. 
    223   3. Certain GHC LANGUAGE extensions are restricted in functionality. 
    224  
    225 The idea behind this divide is that source pragmas are generally specified by the module author, who is untrusted, while command line options are specified by the client since they are compiling the module, who has to be trusted. In the case of Cabal files, while they are specified by the untrusted module author, since it is a single source file it is easy to validate by hand. Below is precisely what flags and extensions fall into each category: 
    226  
    227     * '''Only allowed on command line''': `-cpp` and `-XCPP`, `-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`, `-rts-opts=`, `-dylib-install-name`, `-hcsuf`, `-hidir`, `-hisuf`, `-o`, `-odir`, `-ohi`, `-osuf`, `-stubdir`, `-outputdir`, `-tmpdir`, `-trust`, `-distrust`, `-distrust-all-packages` 
     219The Safe Language restricts things in two different ways: 
     220 
     221  1. Certain GHC LANGUAGE extensions are disallowed completely. 
     222  2. Certain GHC LANGUAGE extensions are restricted in functionality. 
     223 
     224Below is precisely what flags and extensions fall into each category: 
     225 
    228226    * '''Disallowed completely''': `GeneralizedNewtypeDeriving`, `TemplateHaskell`, `-XSafeLanguage` 
    229227    * '''Restricted functionality''': `OverlappingInstances`, `ForeignFunctionInterface`, {{{RULES}}}