diff options
author | David Terei <davidterei@gmail.com> | 2011-12-20 16:09:10 -0800 |
---|---|---|
committer | David Terei <davidterei@gmail.com> | 2011-12-22 21:27:47 -0800 |
commit | 394a68a9558b6c51e91aa336cc40b5988671fa5b (patch) | |
tree | 0c172f4bef5614006671cb3071a344350b3b307d /compiler | |
parent | ddb50b3109a040f1be36ed58c230097c2a95e0d2 (diff) | |
download | haskell-394a68a9558b6c51e91aa336cc40b5988671fa5b.tar.gz |
Doc wibble
Diffstat (limited to 'compiler')
-rw-r--r-- | compiler/rename/RnNames.lhs | 16 |
1 files changed, 9 insertions, 7 deletions
diff --git a/compiler/rename/RnNames.lhs b/compiler/rename/RnNames.lhs index 090a17747f..a09509754e 100644 --- a/compiler/rename/RnNames.lhs +++ b/compiler/rename/RnNames.lhs @@ -60,12 +60,14 @@ and packages. Doing this without caching any trust information would be very slow as we would need to touch all packages and interface files a module depends on. To avoid this we make use of the property that if a modules Safe Haskell mode changes, this triggers a recompilation from that module in the dependcy -graph. So we can just worry mostly about direct imports. There is one trust -property that can change for a package though without recompliation being -triggered, package trust. So we must check that all packages a module -tranitively depends on to be trusted are still trusted when we are compiling -this module (as due to recompilation avoidance some modules below may not be -considered trusted any more without recompilation being triggered). +graph. So we can just worry mostly about direct imports. + +There is one trust property that can change for a package though without +recompliation being triggered: package trust. So we must check that all +packages a module tranitively depends on to be trusted are still trusted when +we are compiling this module (as due to recompilation avoidance some modules +below may not be considered trusted any more without recompilation being +triggered). We handle this by augmenting the existing transitive list of packages a module M depends on with a bool for each package that says if it must be trusted when the @@ -110,7 +112,7 @@ haskell at all and simply imports B, should A inherit all the the trust requirements from B? Should A now also require that a package p is trusted since B required it? -We currently say no but I saying yes also makes sense. The difference is, if a +We currently say no but saying yes also makes sense. The difference is, if a module M that doesn't use Safe Haskell imports a module N that does, should all the trusted package requirements be dropped since M didn't declare that it cares about Safe Haskell (so -XSafe is more strongly associated with the module doing |